商家订单增加退款数据上去。商家订单列表,完整化
This commit is contained in:
parent
bd8e11a663
commit
171cbe9ea1
@ -42,6 +42,9 @@ public class MchOrderInfoDTO implements Serializable {
|
||||
// 物流轨迹信息(物流,已发货的才有数据)
|
||||
@ApiModelProperty(value = "物流轨迹信息")
|
||||
Map<String, Object> logistics_traces;
|
||||
|
||||
// 退款订单详情
|
||||
MchReturnOrderDetailDTO return_order_detail;
|
||||
|
||||
// 订单信息
|
||||
@ApiModelProperty(value = "订单编号")
|
||||
@ -95,16 +98,12 @@ public class MchOrderInfoDTO implements Serializable {
|
||||
private Integer is_deny_return;
|
||||
@ApiModelProperty(value = "异常订单操作流程,0-可操作自行发货,1-可操作订单完成,2-订单完成不可操作")
|
||||
private String operate_flag;
|
||||
|
||||
@ApiModelProperty(value = "订单配送预约状态:1-立即配送;2-预约配送")
|
||||
private Integer booking_state;
|
||||
|
||||
@ApiModelProperty(value = "预约送达起始时间,格式如:yyyy-MM-dd HH:mm:ss")
|
||||
private Date booking_begin_time;
|
||||
|
||||
@ApiModelProperty(value = "预约送达截止时间,格式如:yyyy-MM-dd HH:mm:ss")
|
||||
private Date booking_end_time;
|
||||
|
||||
@ApiModelProperty(value = "预订单到达时间戳(秒)")
|
||||
private Long booking_at;
|
||||
}
|
||||
|
||||
@ -0,0 +1,193 @@
|
||||
/*
|
||||
* Copyright (c) 2025. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
* Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan.
|
||||
* Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna.
|
||||
* Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus.
|
||||
* Vestibulum commodo. Ut rhoncus gravida arcu.
|
||||
*/
|
||||
|
||||
package com.suisung.mall.common.modules.order.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@ApiModel(value = "退款单详情主表实体类 对象", description = "商家版退款单详情主表实体类")
|
||||
public class MchReturnOrderDetailDTO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "退货单编号")
|
||||
private String return_id;
|
||||
|
||||
@ApiModelProperty(value = "订单编号")
|
||||
private String order_id;
|
||||
|
||||
@ApiModelProperty(value = "买家用户ID")
|
||||
private Integer buyer_user_id;
|
||||
|
||||
@ApiModelProperty(value = "买家店铺ID")
|
||||
private Integer buyer_store_id;
|
||||
|
||||
@ApiModelProperty(value = "退货原因ID")
|
||||
private Integer return_reason_id;
|
||||
|
||||
@ApiModelProperty(value = "退货原因名称")
|
||||
private String return_reason_name;
|
||||
|
||||
@ApiModelProperty(value = "买家退货留言")
|
||||
private String return_buyer_message;
|
||||
|
||||
@ApiModelProperty(value = "店铺ID")
|
||||
private Integer store_id;
|
||||
|
||||
@ApiModelProperty(value = "退货退款金额")
|
||||
private BigDecimal return_refund_amount;
|
||||
|
||||
@ApiModelProperty(value = "退货佣金费用")
|
||||
private BigDecimal return_commision_fee;
|
||||
|
||||
@ApiModelProperty(value = "退货状态ID")
|
||||
private Integer return_state_id;
|
||||
|
||||
@ApiModelProperty(value = "退货状态名称")
|
||||
private String return_state_name;
|
||||
|
||||
@ApiModelProperty(value = "退货联系电话")
|
||||
private String return_tel;
|
||||
|
||||
@ApiModelProperty(value = "退货年份")
|
||||
private Integer return_year;
|
||||
|
||||
@ApiModelProperty(value = "退货月份")
|
||||
private Integer return_month;
|
||||
|
||||
@ApiModelProperty(value = "退货日期")
|
||||
private Integer return_day;
|
||||
|
||||
@ApiModelProperty(value = "退货地址")
|
||||
private String return_addr;
|
||||
|
||||
@ApiModelProperty(value = "退货联系手机")
|
||||
private Long return_mobile;
|
||||
|
||||
@ApiModelProperty(value = "退货联系电话")
|
||||
private String return_telephone;
|
||||
|
||||
@ApiModelProperty(value = "退货联系人姓名")
|
||||
private String return_contact_name;
|
||||
|
||||
@ApiModelProperty(value = "分站ID")
|
||||
private Integer subsite_id;
|
||||
|
||||
@ApiModelProperty(value = "退货申请时间")
|
||||
private Date return_add_time;
|
||||
|
||||
@ApiModelProperty(value = "退货完成时间")
|
||||
private Date return_finish_time;
|
||||
|
||||
@ApiModelProperty(value = "是否已退款(ENUM): 0-未退款; 1-已退款")
|
||||
private Integer return_is_paid;
|
||||
|
||||
@ApiModelProperty(value = "退款渠道代码")
|
||||
private String return_channel_code;
|
||||
|
||||
@ApiModelProperty(value = "退款渠道交易ID")
|
||||
private String return_channel_trans_id;
|
||||
|
||||
@ApiModelProperty(value = "退款渠道处理时间")
|
||||
private Date return_channel_time;
|
||||
|
||||
@ApiModelProperty(value = "退款渠道状态(ENUM): 0-待退; 1-已退; 2-异常")
|
||||
private Integer return_channel_flag;
|
||||
|
||||
@ApiModelProperty(value = "支付交易号")
|
||||
private String deposit_trade_no;
|
||||
|
||||
@ApiModelProperty(value = "支付渠道ID")
|
||||
private Integer payment_channel_id;
|
||||
|
||||
@ApiModelProperty(value = "商家处理留言")
|
||||
private String return_store_message;
|
||||
|
||||
@ApiModelProperty(value = "平台退货状态ID")
|
||||
private Integer plantform_return_state_id;
|
||||
|
||||
@ApiModelProperty(value = "平台退货状态名称")
|
||||
private String plantform_return_state_name;
|
||||
|
||||
@ApiModelProperty(value = "退货类型(ENUM): 0-不用退货; 1-需要退货")
|
||||
private Integer return_flag;
|
||||
|
||||
@ApiModelProperty(value = "申请类型(ENUM): 1-退款申请; 2-退货申请; 3-虚拟退款")
|
||||
private Integer return_type;
|
||||
|
||||
@ApiModelProperty(value = "提交的退货退款金额")
|
||||
private BigDecimal submit_return_refund_amount;
|
||||
|
||||
@ApiModelProperty(value = "订单商品ID列表")
|
||||
private List<Long> order_item_ids;
|
||||
|
||||
@ApiModelProperty(value = "买家用户名")
|
||||
private String buyer_user_name;
|
||||
|
||||
@ApiModelProperty(value = "是否有合同类型")
|
||||
private Boolean contract_type_ids;
|
||||
|
||||
@ApiModelProperty(value = "尝试退款次数")
|
||||
private Integer try_return_count;
|
||||
|
||||
// 收货地址相关信息
|
||||
@ApiModelProperty(value = "收货省份")
|
||||
private String da_province;
|
||||
|
||||
@ApiModelProperty(value = "收货城市")
|
||||
private String da_city;
|
||||
|
||||
@ApiModelProperty(value = "收货区县")
|
||||
private String da_county;
|
||||
|
||||
@ApiModelProperty(value = "收货详细地址")
|
||||
private String da_address;
|
||||
|
||||
@ApiModelProperty(value = "收货人姓名")
|
||||
private String da_name;
|
||||
|
||||
@ApiModelProperty(value = "收货人手机号")
|
||||
private String da_mobile;
|
||||
|
||||
@ApiModelProperty(value = "收货人电话")
|
||||
private String da_telephone;
|
||||
|
||||
@ApiModelProperty(value = "收货省份ID")
|
||||
private Integer da_province_id;
|
||||
|
||||
@ApiModelProperty(value = "收货城市ID")
|
||||
private Integer da_city_id;
|
||||
|
||||
@ApiModelProperty(value = "收货区县ID")
|
||||
private Integer da_county_id;
|
||||
|
||||
@ApiModelProperty(value = "纬度")
|
||||
private String da_latitude;
|
||||
|
||||
@ApiModelProperty(value = "经度")
|
||||
private String da_longitude;
|
||||
|
||||
// 退款商品列表
|
||||
@ApiModelProperty(value = "退货商品详情列表")
|
||||
private List<MchReturnOrderItemDetailDTO> items;
|
||||
}
|
||||
@ -0,0 +1,106 @@
|
||||
/*
|
||||
* Copyright (c) 2025. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
* Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan.
|
||||
* Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna.
|
||||
* Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus.
|
||||
* Vestibulum commodo. Ut rhoncus gravida arcu.
|
||||
*/
|
||||
|
||||
package com.suisung.mall.common.modules.order.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@ApiModel(value = "退款单商品详情实体对象", description = "退款单商品详情实体类")
|
||||
public class MchReturnOrderItemDetailDTO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "退货商品项ID")
|
||||
private Long order_return_item_id;
|
||||
|
||||
@ApiModelProperty(value = "退货单编号")
|
||||
private String return_id;
|
||||
|
||||
@ApiModelProperty(value = "订单商品项ID")
|
||||
private Long order_item_id;
|
||||
|
||||
@ApiModelProperty(value = "订单编号")
|
||||
private String order_id;
|
||||
|
||||
@ApiModelProperty(value = "退货商品数量")
|
||||
private Integer return_item_num;
|
||||
|
||||
@ApiModelProperty(value = "退货商品小计金额")
|
||||
private BigDecimal return_item_subtotal;
|
||||
|
||||
@ApiModelProperty(value = "退货原因ID")
|
||||
private Integer return_reason_id;
|
||||
|
||||
@ApiModelProperty(value = "退货商品备注")
|
||||
private String return_item_note;
|
||||
|
||||
@ApiModelProperty(value = "退货商品图片")
|
||||
private String return_item_image;
|
||||
|
||||
@ApiModelProperty(value = "退货商品状态ID")
|
||||
private Integer return_state_id;
|
||||
|
||||
@ApiModelProperty(value = "退货商品佣金费用")
|
||||
private BigDecimal return_item_commision_fee;
|
||||
|
||||
@ApiModelProperty(value = "退货商品商家备注")
|
||||
private String return_item_store_remark;
|
||||
|
||||
// 关联的订单商品信息
|
||||
@ApiModelProperty(value = "商品名称")
|
||||
private String item_name;
|
||||
|
||||
@ApiModelProperty(value = "产品名称")
|
||||
private String product_name;
|
||||
|
||||
@ApiModelProperty(value = "货品ID")
|
||||
private Long item_id;
|
||||
|
||||
@ApiModelProperty(value = "订单商品图片")
|
||||
private String order_item_image;
|
||||
|
||||
@ApiModelProperty(value = "单位ID")
|
||||
private Integer unit_id;
|
||||
|
||||
@ApiModelProperty(value = "单位名称")
|
||||
private String unit_name;
|
||||
|
||||
@ApiModelProperty(value = "订单商品单价")
|
||||
private BigDecimal order_item_unit_price;
|
||||
|
||||
@ApiModelProperty(value = "订单商品数量")
|
||||
private Integer order_item_quantity;
|
||||
|
||||
@ApiModelProperty(value = "订单商品总金额")
|
||||
private BigDecimal order_item_amount;
|
||||
|
||||
@ApiModelProperty(value = "订单商品总重量")
|
||||
private BigDecimal order_item_weight_total;
|
||||
|
||||
@ApiModelProperty(value = "订单商品备注")
|
||||
private String order_item_note;
|
||||
|
||||
@ApiModelProperty(value = "商品编号")
|
||||
private String item_number;
|
||||
|
||||
@ApiModelProperty(value = "产品编号")
|
||||
private String product_number;
|
||||
}
|
||||
@ -1151,45 +1151,91 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取退款详情数据
|
||||
*
|
||||
* @param return_id 退货单ID
|
||||
* @return 退货单详情信息
|
||||
*/
|
||||
@Override
|
||||
public Map getReturnDetail(String return_id) {
|
||||
// 1. 获取退货单基础信息
|
||||
ShopOrderReturn shopOrderReturn = get(return_id);
|
||||
if (shopOrderReturn == null) {
|
||||
logger.warn("退货单不存在: return_id={}", return_id);
|
||||
return new HashMap<>();
|
||||
}
|
||||
Map return_row = Convert.toMap(String.class, Object.class, shopOrderReturn);
|
||||
|
||||
// 2. 获取退货单商品明细
|
||||
QueryWrapper<ShopOrderReturnItem> itemQueryWrapper = new QueryWrapper<>();
|
||||
itemQueryWrapper.eq("return_id", return_id);
|
||||
List<ShopOrderReturnItem> shopOrderReturnItems = orderReturnItemService.find(itemQueryWrapper);
|
||||
List<Map> return_item_rows = Convert.toList(Map.class, shopOrderReturnItems);
|
||||
List<Long> order_item_ids = shopOrderReturnItems.stream().map(s -> s.getOrder_item_id()).distinct().collect(Collectors.toList());
|
||||
List<Long> order_item_ids = shopOrderReturnItems.stream()
|
||||
.map(ShopOrderReturnItem::getOrder_item_id)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 3. 获取原订单详情
|
||||
String order_id = shopOrderReturn.getOrder_id();
|
||||
Map order_row = shopOrderBaseService.getOrderDetail(order_id, null);
|
||||
if (order_row == null) {
|
||||
logger.warn("原订单详情不存在: order_id={}", order_id);
|
||||
return return_row;
|
||||
}
|
||||
|
||||
// 4. 获取退货原因列表
|
||||
List<ShopOrderReturnReason> return_reason_rows = orderReturnReasonService.find(new QueryWrapper<>());
|
||||
|
||||
// 5. 获取订单收货地址信息
|
||||
ShopOrderDeliveryAddress deliveryAddress = orderDeliveryAddressService.get(order_id);
|
||||
Map order_delivery = Convert.toMap(String.class, Object.class, deliveryAddress);
|
||||
return_row.putAll(order_delivery);
|
||||
if (deliveryAddress != null) {
|
||||
Map order_delivery = Convert.toMap(String.class, Object.class, deliveryAddress);
|
||||
return_row.putAll(order_delivery);
|
||||
}
|
||||
|
||||
// 6. 获取订单商品相关信息
|
||||
List<Map> order_row_items = (List<Map>) order_row.get("items");
|
||||
if (CollUtil.isEmpty(order_row_items)) {
|
||||
logger.warn("订单商品列表为空: order_id={}", order_id);
|
||||
return_row.put("items", new ArrayList<>());
|
||||
return return_row;
|
||||
}
|
||||
|
||||
List<Long> item_ids = order_row_items.stream().map(s -> Convert.toLong(s.get("item_id"))).distinct().collect(Collectors.toList());
|
||||
List<Map> product_items = shopProductItemService.gets(item_ids);
|
||||
List<Long> item_ids = order_row_items.stream()
|
||||
.map(s -> Convert.toLong(s.get("item_id")))
|
||||
.filter(Objects::nonNull)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
|
||||
List<Integer> product_ids = order_row_items.stream().map(s -> Convert.toInt(s.get("product_id"))).distinct().collect(Collectors.toList());
|
||||
List<ShopProductInfo> product_infos = shopProductInfoService.gets(product_ids);
|
||||
List<Map> product_items = CollUtil.isEmpty(item_ids) ? new ArrayList<>() :
|
||||
shopProductItemService.gets(item_ids);
|
||||
|
||||
List<ShopProductIndex> product_indexs = shopProductIndexService.gets(product_ids);
|
||||
List<Integer> product_ids = order_row_items.stream()
|
||||
.map(s -> Convert.toInt(s.get("product_id")))
|
||||
.filter(Objects::nonNull)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 退货商品数据
|
||||
Map return_item_temp_rows = new HashMap();
|
||||
List<ShopProductInfo> product_infos = CollUtil.isEmpty(product_ids) ? new ArrayList<>() :
|
||||
shopProductInfoService.gets(product_ids);
|
||||
|
||||
List<ShopProductIndex> product_indexs = CollUtil.isEmpty(product_ids) ? new ArrayList<>() :
|
||||
shopProductIndexService.gets(product_ids);
|
||||
|
||||
// 7. 构建退货商品临时数据映射
|
||||
Map<Long, Map> return_item_temp_rows = new HashMap<>();
|
||||
for (Map item : order_row_items) {
|
||||
Long order_item_id = Convert.toLong(item.get("order_item_id"));
|
||||
|
||||
// 只处理当前退货单相关的订单商品
|
||||
if (order_item_ids.contains(order_item_id)) {
|
||||
Map order_item = new HashMap();
|
||||
Long item_id = Convert.toLong(item.get("item_id"));
|
||||
Integer product_id = Convert.toInt(item.get("product_id"));
|
||||
|
||||
// 复制订单商品基本信息
|
||||
order_item.put("item_name", item.get("item_name"));
|
||||
order_item.put("product_name", item.get("product_name"));
|
||||
order_item.put("item_id", item_id);
|
||||
@ -1202,55 +1248,113 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
order_item.put("order_item_amount", item.get("order_item_amount"));
|
||||
order_item.put("order_item_note", item.get("order_item_note"));
|
||||
|
||||
Optional<Map> productItemOpl = product_items.stream().filter(s -> ObjectUtil.equal(item_id, Convert.toInt(s.get("item_id")))).findFirst();
|
||||
Map productItem = productItemOpl.orElseGet(HashMap::new);
|
||||
order_item.put("item_number", productItem.get("item_number"));
|
||||
// 关联SKU信息
|
||||
if (CollUtil.isNotEmpty(product_items)) {
|
||||
Optional<Map> productItemOpl = product_items.stream()
|
||||
.filter(s -> ObjectUtil.equal(item_id, Convert.toLong(s.get("item_id"))))
|
||||
.findFirst();
|
||||
Map productItem = productItemOpl.orElse(new HashMap<>());
|
||||
order_item.put("item_number", productItem.get("item_number"));
|
||||
}
|
||||
|
||||
Optional<ShopProductInfo> productInfoOpl = product_infos.stream().filter(s -> ObjectUtil.equal(product_id, s.getProduct_id())).findFirst();
|
||||
ShopProductInfo productInfo = productInfoOpl.orElseGet(ShopProductInfo::new);
|
||||
order_item.put("product_number", productInfo.getProduct_number());
|
||||
// 关联商品信息
|
||||
if (CollUtil.isNotEmpty(product_infos)) {
|
||||
Optional<ShopProductInfo> productInfoOpl = product_infos.stream()
|
||||
.filter(s -> ObjectUtil.equal(product_id, s.getProduct_id()))
|
||||
.findFirst();
|
||||
ShopProductInfo productInfo = productInfoOpl.orElse(new ShopProductInfo());
|
||||
order_item.put("product_number", productInfo.getProduct_number());
|
||||
}
|
||||
|
||||
return_item_temp_rows.put(order_item_id, order_item);
|
||||
}
|
||||
}
|
||||
|
||||
// 8. 合并退货商品详细信息
|
||||
for (Map return_item_row : return_item_rows) {
|
||||
Long order_item_id = Convert.toLong(return_item_row.get("order_item_id"));
|
||||
Map return_item_temp_row = (Map) return_item_temp_rows.get(order_item_id);
|
||||
return_item_row.putAll(ObjectUtil.defaultIfNull(return_item_temp_row, new HashMap()));
|
||||
Map return_item_temp_row = return_item_temp_rows.get(order_item_id);
|
||||
|
||||
// 合并订单商品信息到退货商品中
|
||||
if (return_item_temp_row != null) {
|
||||
return_item_row.putAll(return_item_temp_row);
|
||||
}
|
||||
|
||||
// 处理退货图片信息
|
||||
String return_item_image = (String) return_item_row.get("return_item_image");
|
||||
if (StrUtil.isNotBlank(return_item_image)) {
|
||||
return_item_row.put("return_item_image", Convert.toList(String.class, return_item_image));
|
||||
// 如果是逗号分隔的图片字符串,转换为列表
|
||||
if (return_item_image.contains(",")) {
|
||||
return_item_row.put("return_item_image",
|
||||
Arrays.asList(return_item_image.split(",")));
|
||||
} else {
|
||||
return_item_row.put("return_item_image",
|
||||
Collections.singletonList(return_item_image));
|
||||
}
|
||||
} else {
|
||||
return_item_row.put("return_item_image", new ArrayList<>());
|
||||
}
|
||||
}
|
||||
|
||||
// 9. 处理合同类型信息
|
||||
if (CollUtil.isNotEmpty(product_indexs)) {
|
||||
return_row.put("contract_type_ids", StrUtil.isNotEmpty(product_indexs.get(0).getContract_type_ids()));
|
||||
ShopProductIndex firstIndex = product_indexs.get(0);
|
||||
if (firstIndex != null && StrUtil.isNotEmpty(firstIndex.getContract_type_ids())) {
|
||||
return_row.put("contract_type_ids", true);
|
||||
} else {
|
||||
return_row.put("contract_type_ids", false);
|
||||
}
|
||||
} else {
|
||||
return_row.put("contract_type_ids", false);
|
||||
}
|
||||
|
||||
// 10. 添加买家信息
|
||||
return_row.put("buyer_user_name", order_row.get("buyer_user_name"));
|
||||
|
||||
BigDecimal return_item_subtotal = shopOrderReturnItems.stream().map(s -> s.getReturn_item_subtotal()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
// 11. 计算退货总金额
|
||||
BigDecimal return_item_subtotal = shopOrderReturnItems.stream()
|
||||
.map(ShopOrderReturnItem::getReturn_item_subtotal)
|
||||
.filter(Objects::nonNull)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
return_row.put("submit_return_refund_amount", return_item_subtotal);
|
||||
return_row.put("order_item_ids", order_item_ids);
|
||||
|
||||
// 12. 处理退货原因名称
|
||||
Integer return_reason_id = Convert.toInt(return_row.get("return_reason_id"));
|
||||
Optional<ShopOrderReturnReason> reasonOpl = return_reason_rows.stream().filter(s -> ObjectUtil.equal(return_reason_id, s.getReturn_reason_id())).findFirst();
|
||||
ShopOrderReturnReason returnReason = reasonOpl.orElseGet(ShopOrderReturnReason::new);
|
||||
return_row.put("return_reason_name", returnReason.getReturn_reason_name());
|
||||
if (return_reason_id != null && CollUtil.isNotEmpty(return_reason_rows)) {
|
||||
Optional<ShopOrderReturnReason> reasonOpl = return_reason_rows.stream()
|
||||
.filter(s -> ObjectUtil.equal(return_reason_id, s.getReturn_reason_id()))
|
||||
.findFirst();
|
||||
ShopOrderReturnReason returnReason = reasonOpl.orElse(new ShopOrderReturnReason());
|
||||
return_row.put("return_reason_name", returnReason.getReturn_reason_name());
|
||||
} else {
|
||||
return_row.put("return_reason_name", "");
|
||||
}
|
||||
|
||||
// 13. 设置退货商品列表和状态名称
|
||||
return_row.put("items", return_item_rows);
|
||||
return_row.put("return_state_name", stateCodeService.getText(Convert.toInt(return_row.get("return_state_id")), "1"));
|
||||
|
||||
Integer return_state_id = Convert.toInt(return_row.get("return_state_id"));
|
||||
if (return_state_id != null) {
|
||||
return_row.put("return_state_name",
|
||||
stateCodeService.getText(return_state_id, "1"));
|
||||
} else {
|
||||
return_row.put("return_state_name", "");
|
||||
}
|
||||
|
||||
// 14. 处理平台退货状态名称
|
||||
Integer plantform_return_state_id = Convert.toInt(return_row.get("plantform_return_state_id"));
|
||||
return_row.put("plantform_return_state_name", getPlantformReturnStateName(plantform_return_state_id));
|
||||
|
||||
if (plantform_return_state_id != null) {
|
||||
return_row.put("plantform_return_state_name",
|
||||
getPlantformReturnStateName(plantform_return_state_id));
|
||||
} else {
|
||||
return_row.put("plantform_return_state_name", "");
|
||||
}
|
||||
|
||||
return return_row;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 退货单审核(商家同意退款退库)
|
||||
* 处理逻辑:
|
||||
|
||||
@ -592,6 +592,7 @@
|
||||
<result property="kind_id" column="kind_id"/>
|
||||
<result property="delivery_type_id" column="delivery_type_id"/>
|
||||
<result property="distance" column="distance"/>
|
||||
|
||||
<!--预约订单相关字段-->
|
||||
<result property="booking_state" column="booking_state"/>
|
||||
<result property="booking_begin_time" column="booking_begin_time"/>
|
||||
@ -656,10 +657,320 @@
|
||||
<result property="order_item_return_num" column="order_item_return_num"/>
|
||||
<result property="order_item_return_agree_amount" column="order_item_return_agree_amount"/>
|
||||
</collection>
|
||||
|
||||
<!-- 退款订单集合映射 -->
|
||||
<collection property="return_order_detail" ofType="com.suisung.mall.common.modules.order.dto.MchReturnOrderDetailDTO">
|
||||
<id property="return_id" column="return_id"/>
|
||||
<result property="order_id" column="return_order_id"/>
|
||||
<result property="buyer_user_id" column="return_buyer_user_id"/>
|
||||
<result property="buyer_store_id" column="return_buyer_store_id"/>
|
||||
<result property="return_reason_id" column="return_reason_id"/>
|
||||
<result property="return_reason_name" column="return_reason_name"/>
|
||||
<result property="return_buyer_message" column="return_buyer_message"/>
|
||||
<result property="store_id" column="return_store_id"/>
|
||||
<result property="return_refund_amount" column="return_refund_amount"/>
|
||||
<result property="return_commision_fee" column="return_commision_fee"/>
|
||||
<result property="return_state_id" column="return_state_id"/>
|
||||
<result property="return_state_name" column="return_state_name"/>
|
||||
<result property="return_tel" column="return_tel"/>
|
||||
<result property="return_year" column="return_year"/>
|
||||
<result property="return_month" column="return_month"/>
|
||||
<result property="return_day" column="return_day"/>
|
||||
<result property="return_addr" column="return_addr"/>
|
||||
<result property="return_mobile" column="return_mobile"/>
|
||||
<result property="return_telephone" column="return_telephone"/>
|
||||
<result property="return_contact_name" column="return_contact_name"/>
|
||||
<result property="subsite_id" column="return_subsite_id"/>
|
||||
<result property="return_add_time" column="return_add_time"/>
|
||||
<result property="return_finish_time" column="return_finish_time"/>
|
||||
<result property="return_is_paid" column="return_is_paid"/>
|
||||
<result property="return_channel_code" column="return_channel_code"/>
|
||||
<result property="return_channel_trans_id" column="return_channel_trans_id"/>
|
||||
<result property="return_channel_time" column="return_channel_time"/>
|
||||
<result property="return_channel_flag" column="return_channel_flag"/>
|
||||
<result property="deposit_trade_no" column="return_deposit_trade_no"/>
|
||||
<result property="payment_channel_id" column="return_payment_channel_id"/>
|
||||
<result property="return_store_message" column="return_store_message"/>
|
||||
<result property="plantform_return_state_id" column="plantform_return_state_id"/>
|
||||
<result property="plantform_return_state_name" column="plantform_return_state_name"/>
|
||||
<result property="return_flag" column="return_flag"/>
|
||||
<result property="return_type" column="return_type"/>
|
||||
<result property="submit_return_refund_amount" column="submit_return_refund_amount"/>
|
||||
<result property="buyer_user_name" column="return_buyer_user_name"/>
|
||||
<result property="contract_type_ids" column="contract_type_ids"/>
|
||||
<result property="try_return_count" column="try_return_count"/>
|
||||
|
||||
<!-- 收货地址相关信息 -->
|
||||
<result property="da_province" column="return_da_province"/>
|
||||
<result property="da_city" column="return_da_city"/>
|
||||
<result property="da_county" column="return_da_county"/>
|
||||
<result property="da_address" column="return_da_address"/>
|
||||
<result property="da_name" column="return_da_name"/>
|
||||
<result property="da_mobile" column="return_da_mobile"/>
|
||||
<result property="da_telephone" column="return_da_telephone"/>
|
||||
<result property="da_province_id" column="return_da_province_id"/>
|
||||
<result property="da_city_id" column="return_da_city_id"/>
|
||||
<result property="da_county_id" column="return_da_county_id"/>
|
||||
<result property="da_latitude" column="return_da_latitude"/>
|
||||
<result property="da_longitude" column="return_da_longitude"/>
|
||||
|
||||
<!-- 退款商品列表映射 -->
|
||||
<collection property="items" ofType="com.suisung.mall.common.modules.order.dto.MchReturnOrderItemDetailDTO">
|
||||
<id property="order_return_item_id" column="order_return_item_id"/>
|
||||
<result property="return_id" column="item_return_id"/>
|
||||
<result property="order_item_id" column="return_order_item_id"/>
|
||||
<result property="order_id" column="item_order_id"/>
|
||||
<result property="return_item_num" column="return_item_num"/>
|
||||
<result property="return_item_subtotal" column="return_item_subtotal"/>
|
||||
<result property="return_reason_id" column="item_return_reason_id"/>
|
||||
<result property="return_item_note" column="return_item_note"/>
|
||||
<result property="return_item_image" column="return_item_image"/>
|
||||
<result property="return_state_id" column="item_return_state_id"/>
|
||||
<result property="return_item_commision_fee" column="return_item_commision_fee"/>
|
||||
<result property="return_item_store_remark" column="return_item_store_remark"/>
|
||||
|
||||
<!-- 关联的订单商品信息 -->
|
||||
<result property="item_name" column="return_item_name"/>
|
||||
<result property="product_name" column="return_product_name"/>
|
||||
<result property="item_id" column="return_item_id"/>
|
||||
<result property="order_item_image" column="return_order_item_image"/>
|
||||
<result property="unit_id" column="return_unit_id"/>
|
||||
<result property="unit_name" column="return_unit_name"/>
|
||||
<result property="order_item_unit_price" column="return_order_item_unit_price"/>
|
||||
<result property="order_item_quantity" column="return_order_item_quantity"/>
|
||||
<result property="order_item_amount" column="return_order_item_amount"/>
|
||||
<result property="order_item_weight_total" column="return_order_item_weight_total"/>
|
||||
<result property="order_item_note" column="return_order_item_note"/>
|
||||
<result property="item_number" column="return_item_number"/>
|
||||
<result property="product_number" column="return_product_number"/>
|
||||
</collection>
|
||||
</collection>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
<!--refundstatus 退款状态:0-是无退款;1-是部分退款;2-是全部退款
|
||||
<select id="selectMchOrderPageList" resultMap="MchOrderResult">
|
||||
<include refid="mchOrderColumns"/>
|
||||
<include refid="mchOrderFromAndJoins"/>
|
||||
<include refid="mchOrderWhereCondition"/>
|
||||
ORDER BY ob.order_time DESC
|
||||
</select>
|
||||
|
||||
<select id="countMchOrderByCondition" resultType="java.lang.Long">
|
||||
SELECT COUNT(DISTINCT ob.order_id)
|
||||
|
||||
<include refid="mchOrderFromAndJoins"/>
|
||||
|
||||
<include refid="mchOrderWhereCondition"/>
|
||||
</select>
|
||||
|
||||
<select id="getMchOrderDetail" resultMap="MchOrderResult">
|
||||
<include refid="mchOrderColumns"/>
|
||||
<include refid="mchOrderFromAndJoins"/>
|
||||
<where>
|
||||
ob.order_id=#{orderId}
|
||||
</where>
|
||||
|
||||
ORDER BY ob.order_id DESC
|
||||
</select>
|
||||
|
||||
<!--应付金额/应支付金额:order_goods_amount - order_discount_amount + order_shipping_fee - order_voucher_price - order_points_fee - order_adjust_fee-->
|
||||
<sql id="mchOrderColumns">
|
||||
SELECT
|
||||
ob.order_id,
|
||||
ob.order_time,
|
||||
|
||||
<!--送达时间戳-->
|
||||
CASE
|
||||
WHEN oi.delivery_type_id IS NOT NULL AND oi.delivery_type_id = 16 AND #{expireSeconds} IS NOT NULL AND
|
||||
#{expireSeconds} > 0
|
||||
THEN oi.order_time + #{expireSeconds}*1000
|
||||
ELSE oi.order_time + 864000000 <!-- 10天 = 10*24*60*60*1000 = 864000000毫秒 -->
|
||||
END as arrival_time,
|
||||
|
||||
ob.order_product_amount,
|
||||
ob.order_payment_amount,
|
||||
ob.currency_id,
|
||||
ob.order_state_id,
|
||||
ob.operate_flag,
|
||||
ST_Distance_Sphere(
|
||||
POINT(sb.store_longitude, sb.store_latitude),
|
||||
POINT(oda.da_longitude, oda.da_latitude)
|
||||
) as distance,
|
||||
oi.order_title,
|
||||
oi.order_pickup_num,
|
||||
oi.delivery_type_id,
|
||||
oi.buyer_user_id,
|
||||
oi.order_picked_time,
|
||||
oi.order_is_received,
|
||||
oi.kind_id,
|
||||
IF((SELECT count(*) FROM shop_order_base WHERE buyer_user_id = oi.buyer_user_id AND order_state_id IN
|
||||
(2011,2012,
|
||||
2013, 2014, 2020, 2030, 2040))>1,2,1)
|
||||
AS is_new_buyer,
|
||||
oi.payment_time,
|
||||
oi.booking_state,
|
||||
oi.booking_begin_time,
|
||||
oi.booking_end_time,
|
||||
oi.booking_at,
|
||||
od.order_shipping_fee,
|
||||
IFNULL(od.order_shipping_fee_inner, 0) as order_shipping_fee_inner,
|
||||
IFNULL(od.lkl_fee, 0) as lkl_fee,
|
||||
<!--总计优惠金额 order_discount_amount + order_voucher_price + order_points_fee + order_adjust_fee-->
|
||||
(od.order_discount_amount + od.voucher_price + od.order_points_fee + od.order_adjust_fee) as
|
||||
total_discount_amount,
|
||||
<!--预计收入:订单原价金额-总计优惠金额-配送费-平台费-拉卡拉手续费 + 打包费-->
|
||||
(ob.order_product_amount-od.order_discount_amount-od.voucher_price-od.order_points_fee-od.order_adjust_fee-od.platform_fee-order_shipping_fee_inner-lkl_fee+od.packing_fee)
|
||||
as order_income_amount,
|
||||
(od.platform_fee+lkl_fee) as platform_fee,
|
||||
od.packing_fee,
|
||||
od.order_message,
|
||||
sb.store_id,
|
||||
sb.store_name,
|
||||
sb.store_logo,
|
||||
sb.store_latitude,
|
||||
sb.store_longitude,
|
||||
sb.store_area,
|
||||
sb.store_address,
|
||||
sb.store_grade_id,
|
||||
sbsg.store_grade_name,
|
||||
oit.item_id,
|
||||
oit.product_id,
|
||||
oit.item_name,
|
||||
oit.order_item_quantity,
|
||||
oit.item_unit_price,
|
||||
oit.order_item_amount,
|
||||
IF(oit.order_item_return_num > 0, oit.order_item_return_num, 0) AS order_item_return_num,
|
||||
IF(oit.order_item_return_agree_amount > 0, oit.order_item_return_agree_amount, 0.00) AS
|
||||
order_item_return_agree_amount,
|
||||
spi.item_barcode,
|
||||
oit.order_item_image,
|
||||
oit.spec_info,
|
||||
oda.da_name,
|
||||
oda.da_mobile,
|
||||
oda.da_latitude,
|
||||
oda.da_longitude,
|
||||
oda.da_province,
|
||||
oda.da_city,
|
||||
oda.da_county,
|
||||
oda.da_address,
|
||||
osf.sf_order_id,
|
||||
osf.operator_name,
|
||||
osf.operator_phone,
|
||||
osf.rider_lng,
|
||||
osf.rider_lat,
|
||||
osf.order_status,
|
||||
osf.status_desc,
|
||||
osf.cancel_code,
|
||||
osf.cancel_reason,
|
||||
osf.push_time,
|
||||
osf.h5_url,
|
||||
osf.feed,
|
||||
|
||||
<!-- 退款信息字段 -->
|
||||
sor.return_id,
|
||||
sor.order_id as return_order_id,
|
||||
sor.buyer_user_id as return_buyer_user_id,
|
||||
sor.buyer_store_id as return_buyer_store_id,
|
||||
sor.return_reason_id,
|
||||
sorr.return_reason_name,
|
||||
sor.return_buyer_message,
|
||||
sor.store_id as return_store_id,
|
||||
sor.return_refund_amount,
|
||||
sor.return_commision_fee,
|
||||
sor.return_state_id,
|
||||
sc1.state_code_name as return_state_name,
|
||||
sor.return_tel,
|
||||
sor.return_year,
|
||||
sor.return_month,
|
||||
sor.return_day,
|
||||
sor.return_addr,
|
||||
sor.return_mobile,
|
||||
sor.return_telephone,
|
||||
sor.return_contact_name,
|
||||
sor.subsite_id as return_subsite_id,
|
||||
sor.return_add_time,
|
||||
sor.return_finish_time,
|
||||
sor.return_is_paid,
|
||||
sor.return_channel_code,
|
||||
sor.return_channel_trans_id,
|
||||
sor.return_channel_time,
|
||||
sor.return_channel_flag,
|
||||
sor.deposit_trade_no as return_deposit_trade_no,
|
||||
sor.payment_channel_id as return_payment_channel_id,
|
||||
sor.return_store_message,
|
||||
sor.plantform_return_state_id,
|
||||
sc2.state_code_name as plantform_return_state_name,
|
||||
sor.return_flag,
|
||||
sor.return_type,
|
||||
sor.return_refund_amount as submit_return_refund_amount,
|
||||
ob.buyer_user_name as return_buyer_user_name,
|
||||
sor.try_return_count,
|
||||
|
||||
<!-- 退款收货地址信息 -->
|
||||
sorda.da_province as return_da_province,
|
||||
sorda.da_city as return_da_city,
|
||||
sorda.da_county as return_da_county,
|
||||
sorda.da_address as return_da_address,
|
||||
sorda.da_name as return_da_name,
|
||||
sorda.da_mobile as return_da_mobile,
|
||||
sorda.da_telephone as return_da_telephone,
|
||||
sorda.da_province_id as return_da_province_id,
|
||||
sorda.da_city_id as return_da_city_id,
|
||||
sorda.da_county_id as return_da_county_id,
|
||||
sorda.da_latitude as return_da_latitude,
|
||||
sorda.da_longitude as return_da_longitude,
|
||||
|
||||
<!-- 退款商品信息 -->
|
||||
sori.order_return_item_id,
|
||||
sori.return_id as item_return_id,
|
||||
sori.order_item_id as return_order_item_id,
|
||||
sori.order_id as item_order_id,
|
||||
sori.return_item_num,
|
||||
sori.return_item_subtotal,
|
||||
sori.return_reason_id as item_return_reason_id,
|
||||
sori.return_item_note,
|
||||
sori.return_item_image,
|
||||
sori.return_state_id as item_return_state_id,
|
||||
sori.return_item_commision_fee,
|
||||
sori.return_item_store_remark,
|
||||
soi.item_name as return_item_name,
|
||||
spb.product_name as return_product_name,
|
||||
soi.item_id as return_item_id,
|
||||
soi.order_item_image as return_order_item_image,
|
||||
spb.unit_id as return_unit_id,
|
||||
sbpu.unit_name as return_unit_name,
|
||||
soi.order_item_unit_price as return_order_item_unit_price,
|
||||
soi.order_item_quantity as return_order_item_quantity,
|
||||
soi.order_item_amount as return_order_item_amount,
|
||||
soi.order_item_note as return_order_item_note,
|
||||
spi.item_number as return_item_number,
|
||||
spb.product_number as return_product_number
|
||||
</sql>
|
||||
|
||||
<!-- 公共的FROM和JOIN子句 -->
|
||||
<sql id="mchOrderFromAndJoins">
|
||||
FROM shop_order_base ob
|
||||
JOIN shop_order_info oi ON ob.order_id = oi.order_id
|
||||
JOIN shop_order_data od ON ob.order_id = od.order_id
|
||||
JOIN shop_store_base sb ON ob.store_id = sb.store_id
|
||||
JOIN shop_order_delivery_address oda ON ob.order_id = oda.order_id
|
||||
JOIN shop_order_item oit ON ob.order_id = oit.order_id
|
||||
LEFT JOIN shop_store_sf_order osf ON ob.order_id = osf.shop_order_id
|
||||
LEFT JOIN shop_product_item spi ON oit.item_id = spi.item_id
|
||||
LEFT JOIN shop_base_store_grade sbsg ON sb.store_grade_id = sbsg.store_grade_id
|
||||
LEFT JOIN shop_order_return sor ON ob.order_id = sor.order_id
|
||||
LEFT JOIN shop_order_return_reason sorr ON sor.return_reason_id = sorr.return_reason_id
|
||||
LEFT JOIN shop_base_state_code sc1 ON sor.return_state_id = sc1.state_code_id
|
||||
LEFT JOIN shop_base_state_code sc2 ON sor.plantform_return_state_id = sc2.state_code_id
|
||||
LEFT JOIN shop_order_delivery_address sorda ON sor.order_id = sorda.order_id
|
||||
LEFT JOIN shop_order_return_item sori ON sor.return_id = sori.return_id
|
||||
LEFT JOIN shop_order_item soi ON sori.order_item_id = soi.order_item_id
|
||||
LEFT JOIN shop_product_base spb ON soi.product_id = spb.product_id
|
||||
LEFT JOIN shop_base_product_unit sbpu ON spb.unit_id = sbpu.unit_id
|
||||
</sql>
|
||||
|
||||
<!--refundstatus 退款状态:0-是无退款;1-是部分退款;2-是全部退款
|
||||
orderstatus 订单状态:2010-待付款;2011-待订单审核;2012-待发货;2013-待财务审核;2014-待配货/待出库审核;2020-待发货;
|
||||
2030-待发货/待收货确认;2040-已发货/待收货确认;2050-已签收;2060-已完成/已签收;2070-已取消/已作废;2080-自提-->
|
||||
<!-- status: 同城配送订单状态(delivery=1时才生效):无值 or 0-全部订单;1-进行中订单;2-异常(超时)订单;3-退款订单;9-已完成订单-->
|
||||
@ -765,145 +1076,6 @@
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
<!--应付金额/应支付金额:order_goods_amount - order_discount_amount + order_shipping_fee - order_voucher_price - order_points_fee - order_adjust_fee-->
|
||||
<sql id="mchOrderColumns">
|
||||
SELECT
|
||||
ob.order_id,
|
||||
ob.order_time,
|
||||
<!--送达时间戳-->
|
||||
CASE
|
||||
WHEN oi.delivery_type_id IS NOT NULL AND oi.delivery_type_id = 16 AND #{expireSeconds} IS NOT NULL AND
|
||||
#{expireSeconds} > 0
|
||||
THEN oi.order_time + #{expireSeconds}*1000
|
||||
ELSE oi.order_time + 864000000 <!-- 10天 = 10*24*60*60*1000 = 864000000毫秒 -->
|
||||
END as arrival_time,
|
||||
ob.order_product_amount,
|
||||
ob.order_payment_amount,
|
||||
ob.currency_id,
|
||||
ob.order_state_id,
|
||||
ob.operate_flag,
|
||||
ST_Distance_Sphere(
|
||||
POINT(sb.store_longitude, sb.store_latitude),
|
||||
POINT(oda.da_longitude, oda.da_latitude)
|
||||
) as distance,
|
||||
oi.order_title,
|
||||
oi.order_pickup_num,
|
||||
oi.delivery_type_id,
|
||||
oi.buyer_user_id,
|
||||
oi.order_picked_time,
|
||||
oi.order_is_received,
|
||||
oi.kind_id,
|
||||
IF((SELECT count(*) FROM shop_order_base WHERE buyer_user_id = oi.buyer_user_id AND order_state_id IN
|
||||
(2011,2012,
|
||||
2013, 2014, 2020, 2030, 2040))>1,2,1)
|
||||
AS is_new_buyer,
|
||||
oi.payment_time,
|
||||
oi.booking_state,
|
||||
oi.booking_begin_time,
|
||||
oi.booking_end_time,
|
||||
oi.booking_at,
|
||||
od.order_shipping_fee,
|
||||
IFNULL(od.order_shipping_fee_inner, 0) as order_shipping_fee_inner,
|
||||
IFNULL(od.lkl_fee, 0) as lkl_fee,
|
||||
<!--总计优惠金额 order_discount_amount + order_voucher_price + order_points_fee + order_adjust_fee-->
|
||||
(od.order_discount_amount + od.voucher_price + od.order_points_fee + od.order_adjust_fee) as
|
||||
total_discount_amount,
|
||||
<!--预计收入:订单原价金额-总计优惠金额-配送费-平台费-拉卡拉手续费 + 打包费-->
|
||||
(ob.order_product_amount-od.order_discount_amount-od.voucher_price-od.order_points_fee-od.order_adjust_fee-od.platform_fee-order_shipping_fee_inner-lkl_fee+od.packing_fee)
|
||||
as order_income_amount,
|
||||
(od.platform_fee+lkl_fee) as platform_fee,
|
||||
od.packing_fee,
|
||||
od.order_message,
|
||||
sb.store_id,
|
||||
sb.store_name,
|
||||
sb.store_logo,
|
||||
sb.store_latitude,
|
||||
sb.store_longitude,
|
||||
sb.store_area,
|
||||
sb.store_address,
|
||||
sb.store_grade_id,
|
||||
sbsg.store_grade_name,
|
||||
oit.item_id,
|
||||
oit.product_id,
|
||||
oit.item_name,
|
||||
oit.order_item_quantity,
|
||||
oit.item_unit_price,
|
||||
oit.order_item_amount,
|
||||
IF(oit.order_item_return_num > 0, oit.order_item_return_num, 0) AS order_item_return_num,
|
||||
IF(oit.order_item_return_agree_amount > 0, oit.order_item_return_agree_amount, 0.00) AS
|
||||
order_item_return_agree_amount,
|
||||
spi.item_barcode,
|
||||
oit.order_item_image,
|
||||
oit.spec_info,
|
||||
oda.da_name,
|
||||
oda.da_mobile,
|
||||
oda.da_latitude,
|
||||
oda.da_longitude,
|
||||
oda.da_province,
|
||||
oda.da_city,
|
||||
oda.da_county,
|
||||
oda.da_address,
|
||||
osf.sf_order_id,
|
||||
osf.operator_name,
|
||||
osf.operator_phone,
|
||||
osf.rider_lng,
|
||||
osf.rider_lat,
|
||||
osf.order_status,
|
||||
osf.status_desc,
|
||||
osf.cancel_code,
|
||||
osf.cancel_reason,
|
||||
osf.push_time,
|
||||
osf.h5_url,
|
||||
osf.feed
|
||||
</sql>
|
||||
|
||||
<select id="selectMchOrderPageList" resultMap="MchOrderResult">
|
||||
<include refid="mchOrderColumns"/>
|
||||
|
||||
from shop_order_base ob
|
||||
join shop_order_info oi on ob.order_id=oi.order_id
|
||||
join shop_order_data od on ob.order_id=od.order_id
|
||||
join shop_store_base sb on ob.store_id=sb.store_id
|
||||
join shop_order_delivery_address oda on ob.order_id=oda.order_id
|
||||
join shop_order_item oit on ob.order_id=oit.order_id
|
||||
left join shop_store_sf_order osf on ob.order_id=osf.shop_order_id
|
||||
left join shop_product_item spi on oit.product_id=spi.product_id
|
||||
left join shop_base_store_grade sbsg on sb.store_grade_id=sbsg.store_grade_id
|
||||
|
||||
<include refid="mchOrderWhereCondition"/>
|
||||
|
||||
ORDER BY ob.order_time DESC
|
||||
</select>
|
||||
|
||||
<select id="countMchOrderByCondition" resultType="java.lang.Long">
|
||||
SELECT COUNT(DISTINCT ob.order_id)
|
||||
FROM shop_order_base ob
|
||||
JOIN shop_order_info oi ON ob.order_id = oi.order_id
|
||||
JOIN shop_order_data od ON ob.order_id = od.order_id
|
||||
JOIN shop_store_base sb ON ob.store_id = sb.store_id
|
||||
JOIN shop_order_delivery_address oda ON ob.order_id = oda.order_id
|
||||
<include refid="mchOrderWhereCondition"/>
|
||||
</select>
|
||||
|
||||
<select id="getMchOrderDetail" resultMap="MchOrderResult">
|
||||
<include refid="mchOrderColumns"/>
|
||||
from shop_order_base ob
|
||||
join shop_order_info oi on ob.order_id=oi.order_id
|
||||
join shop_order_data od on ob.order_id=od.order_id
|
||||
join shop_store_base sb on ob.store_id=sb.store_id
|
||||
join shop_order_delivery_address oda on ob.order_id=oda.order_id
|
||||
join shop_order_item oit on ob.order_id=oit.order_id
|
||||
left join shop_store_sf_order osf on ob.order_id=osf.shop_order_id
|
||||
left join shop_product_item spi on oit.product_id=spi.product_id
|
||||
left join shop_base_store_grade sbsg on sb.store_grade_id=sbsg.store_grade_id
|
||||
|
||||
<where>
|
||||
ob.order_id=#{orderId}
|
||||
</where>
|
||||
|
||||
ORDER BY ob.order_id DESC
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getWxOrderBaseInfo" resultMap="WxOrderBaseInfoResult">
|
||||
SELECT a.store_id,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user