提交修改

This commit is contained in:
quyixiao 2025-08-27 09:35:39 +08:00
parent dd017c9b0f
commit e1e8e9da63
20 changed files with 674 additions and 42 deletions

View File

@ -7,10 +7,17 @@ package com.heyu.api.data.dao.vv;
* @author quyixiao
* @since 2025-08-26
*/
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heyu.api.data.entity.vv.VvReverseOrderEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lz.mybatis.plugin.annotations.Column;
import com.lz.mybatis.plugin.annotations.IF;
import com.lz.mybatis.plugin.annotations.OrderBy;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface VvReverseOrderDao extends BaseMapper<VvReverseOrderEntity> {
@ -33,4 +40,15 @@ public interface VvReverseOrderDao extends BaseMapper<VvReverseOrderEntity> {
int deleteVvReverseOrderById(@Param("id")Long id);
@OrderBy(VvReverseOrderEntity.id_)
List<VvReverseOrderEntity> selectByAdminCondition(IPage page,
@IF Long tradeOrderId,
@IF String status,
@IF String trackNumber,
@IF Integer refundType,
@IF @Column(VvReverseOrderEntity.create_timestamp) Long minCreateTimestamp,
@IF @Column(VvReverseOrderEntity.create_timestamp) Long maxCreateTimestamp,
@IF @OrderBy(VvReverseOrderEntity.create_timestamp) String createTimestampSort
);
}

View File

@ -0,0 +1,41 @@
package com.heyu.api.data.dao.vv;
/**
* <p>
* 逆向子单表 服务类
* </p>
*
* @author quyixiao
* @since 2025-08-27
*/
import com.heyu.api.data.entity.vv.VvReverseOrderLineEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lz.mybatis.plugin.annotations.IN;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface VvReverseOrderLineDao extends BaseMapper<VvReverseOrderLineEntity> {
VvReverseOrderLineEntity selectVvReverseOrderLineById(@Param("id")Long id);
Long insertVvReverseOrderLine(VvReverseOrderLineEntity vvReverseOrderLine);
Long insertOrUpdateVvReverseOrderLine(VvReverseOrderLineEntity vvReverseOrderLine);
int updateVvReverseOrderLineById(VvReverseOrderLineEntity vvReverseOrderLine);
int updateCoverVvReverseOrderLineById(VvReverseOrderLineEntity vvReverseOrderLine);
int deleteVvReverseOrderLineById(@Param("id")Long id);
List<VvReverseOrderLineEntity> selectVvReverseOrderLineByReverseOrderId(@IN List<Long> reverseOrderId);
}

View File

@ -9,8 +9,12 @@ package com.heyu.api.data.dao.vv;
*/
import com.heyu.api.data.entity.vv.VvReverseOrderProveEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lz.mybatis.plugin.annotations.IN;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface VvReverseOrderProveDao extends BaseMapper<VvReverseOrderProveEntity> {
@ -33,4 +37,5 @@ public interface VvReverseOrderProveDao extends BaseMapper<VvReverseOrderProveEn
int deleteVvReverseOrderProveById(@Param("id")Long id);
List<VvReverseOrderProveEntity> selectVvReverseOrderProveByReverseOrderId(@IN List<Long> reverseOrderId);
}

View File

@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date;
/**
*逆向表
* @author quyixiao
* @since 2025-08-26
* @since 2025-08-27
*/
@Data
@ -39,6 +39,9 @@ private static final long serialVersionUID = 1L;
public final static String gmt_refunded = CLASS_NAME + "gmt_refunded"; // 退款完成时间
public final static String gmt_close = CLASS_NAME + "gmt_close"; // 退款关闭时间
public final static String track_number = CLASS_NAME + "track_number"; // 物流追踪号
public final static String gmt_cancel = CLASS_NAME + "gmt_cancel"; // 订单取消时间
public final static String create_timestamp = CLASS_NAME + "create_timestamp"; // 创建时间撮
public final static String modify_timestamp = CLASS_NAME + "modify_timestamp"; // 修改时间撮
//
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ -76,6 +79,12 @@ private static final long serialVersionUID = 1L;
private Date gmtClose;
//物流追踪号
private String trackNumber;
//订单取消时间
private Date gmtCancel;
//创建时间撮
private Long createTimestamp;
//修改时间撮
private Long modifyTimestamp;
/**
*
* @return
@ -346,6 +355,51 @@ private static final long serialVersionUID = 1L;
this.trackNumber = trackNumber;
}
/**
* 订单取消时间
* @return
*/
public Date getGmtCancel() {
return gmtCancel;
}
/**
* 订单取消时间
* @param gmtCancel
*/
public void setGmtCancel(Date gmtCancel) {
this.gmtCancel = gmtCancel;
}
/**
* 创建时间撮
* @return
*/
public Long getCreateTimestamp() {
return createTimestamp;
}
/**
* 创建时间撮
* @param createTimestamp
*/
public void setCreateTimestamp(Long createTimestamp) {
this.createTimestamp = createTimestamp;
}
/**
* 修改时间撮
* @return
*/
public Long getModifyTimestamp() {
return modifyTimestamp;
}
/**
* 修改时间撮
* @param modifyTimestamp
*/
public void setModifyTimestamp(Long modifyTimestamp) {
this.modifyTimestamp = modifyTimestamp;
}
@Override
public String toString() {
return "VvReverseOrderEntity{" +
@ -367,6 +421,9 @@ private static final long serialVersionUID = 1L;
",gmtRefunded=" + gmtRefunded +
",gmtClose=" + gmtClose +
",trackNumber=" + trackNumber +
",gmtCancel=" + gmtCancel +
",createTimestamp=" + createTimestamp +
",modifyTimestamp=" + modifyTimestamp +
"}";
}
}

View File

@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date;
/**
*逆向子单表
* @author quyixiao
* @since 2025-08-26
* @since 2025-08-27
*/
@Data
@ -29,9 +29,11 @@ private static final long serialVersionUID = 1L;
public final static String trade_order_id = CLASS_NAME + "trade_order_id"; // 订单id
public final static String trade_order_line_id = CLASS_NAME + "trade_order_line_id"; // 子单id
public final static String refund_amount = CLASS_NAME + "refund_amount"; // 退款金额
public final static String status_ = CLASS_NAME + "status"; // 逆向状态状态 wait_seller_agree 等待卖家同意 , wait_buyer_post 等待买家寄东西, shipping 运送中, delivered 妥投, reject_delivered 拒绝妥投, agree_refunded 同意退款 ,refunded 退款完成 close 退款关闭
public final static String seller_id = CLASS_NAME + "seller_id"; // 卖家id
public final static String seller_name = CLASS_NAME + "seller_name"; // 卖家名称
public final static String product_name = CLASS_NAME + "product_name"; // 商品名称
public final static String sku_image_url = CLASS_NAME + "sku_image_url"; // sku 图片
public final static String product_id = CLASS_NAME + "product_id"; // 商品id
//
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ -49,12 +51,16 @@ private static final long serialVersionUID = 1L;
private Long tradeOrderLineId;
//退款金额
private BigDecimal refundAmount;
//逆向状态状态 wait_seller_agree 等待卖家同意 , wait_buyer_post 等待买家寄东西, shipping 运送中, delivered 妥投, reject_delivered 拒绝妥投, agree_refunded 同意退款 ,refunded 退款完成 close 退款关闭
private String status;
//卖家id
private Long sellerId;
//卖家名称
private String sellerName;
//商品名称
private String productName;
//sku 图片
private String skuImageUrl;
//商品id
private Long productId;
/**
*
* @return
@ -175,21 +181,6 @@ private static final long serialVersionUID = 1L;
this.refundAmount = refundAmount;
}
/**
* 逆向状态状态 wait_seller_agree 等待卖家同意 , wait_buyer_post 等待买家寄东西, shipping 运送中, delivered 妥投, reject_delivered 拒绝妥投, agree_refunded 同意退款 ,refunded 退款完成 close 退款关闭
* @return
*/
public String getStatus() {
return status;
}
/**
* 逆向状态状态 wait_seller_agree 等待卖家同意 , wait_buyer_post 等待买家寄东西, shipping 运送中, delivered 妥投, reject_delivered 拒绝妥投, agree_refunded 同意退款 ,refunded 退款完成 close 退款关闭
* @param status
*/
public void setStatus(String status) {
this.status = status;
}
/**
* 卖家id
* @return
@ -220,6 +211,51 @@ private static final long serialVersionUID = 1L;
this.sellerName = sellerName;
}
/**
* 商品名称
* @return
*/
public String getProductName() {
return productName;
}
/**
* 商品名称
* @param productName
*/
public void setProductName(String productName) {
this.productName = productName;
}
/**
* sku 图片
* @return
*/
public String getSkuImageUrl() {
return skuImageUrl;
}
/**
* sku 图片
* @param skuImageUrl
*/
public void setSkuImageUrl(String skuImageUrl) {
this.skuImageUrl = skuImageUrl;
}
/**
* 商品id
* @return
*/
public Long getProductId() {
return productId;
}
/**
* 商品id
* @param productId
*/
public void setProductId(Long productId) {
this.productId = productId;
}
@Override
public String toString() {
return "VvReverseOrderLineEntity{" +
@ -231,9 +267,11 @@ private static final long serialVersionUID = 1L;
",tradeOrderId=" + tradeOrderId +
",tradeOrderLineId=" + tradeOrderLineId +
",refundAmount=" + refundAmount +
",status=" + status +
",sellerId=" + sellerId +
",sellerName=" + sellerName +
",productName=" + productName +
",skuImageUrl=" + skuImageUrl +
",productId=" + productId +
"}";
}
}

View File

@ -1,12 +1,11 @@
package com.heyu.api.data.entity.vv;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.lz.mybatis.plugin.annotations.AS;
import java.math.BigDecimal;
import java.util.Date;import java.util.Date;
import java.util.Date;
/**
*退款证据表
* @author quyixiao

View File

@ -0,0 +1,68 @@
package com.heyu.api.data.service.impl.vv;
/**
* <p>
* 逆向子单表 服务类
* </p>
*
* @author quyixiao
* @since 2025-08-27
*/
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.heyu.api.data.dao.vv.VvReverseOrderLineDao;
import com.heyu.api.data.entity.vv.VvReverseOrderLineEntity;
import com.heyu.api.data.service.vv.VvReverseOrderLineService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class VvReverseOrderLineServiceImpl extends ServiceImpl<VvReverseOrderLineDao, VvReverseOrderLineEntity> implements VvReverseOrderLineService {
@Autowired
private VvReverseOrderLineDao vvReverseOrderLineDao;
@Override
public VvReverseOrderLineEntity selectVvReverseOrderLineById(Long id){
return vvReverseOrderLineDao.selectVvReverseOrderLineById(id);
}
@Override
public Long insertVvReverseOrderLine(VvReverseOrderLineEntity vvReverseOrderLine){
return vvReverseOrderLineDao.insertVvReverseOrderLine(vvReverseOrderLine);
}
@Override
public Long insertOrUpdateVvReverseOrderLine(VvReverseOrderLineEntity vvReverseOrderLine){
return vvReverseOrderLineDao.insertOrUpdateVvReverseOrderLine(vvReverseOrderLine);
}
@Override
public int updateVvReverseOrderLineById(VvReverseOrderLineEntity vvReverseOrderLine){
return vvReverseOrderLineDao.updateVvReverseOrderLineById(vvReverseOrderLine);
}
@Override
public int updateCoverVvReverseOrderLineById(VvReverseOrderLineEntity vvReverseOrderLine){
return vvReverseOrderLineDao.updateCoverVvReverseOrderLineById(vvReverseOrderLine);
}
@Override
public int deleteVvReverseOrderLineById(Long id){
return vvReverseOrderLineDao.deleteVvReverseOrderLineById(id);
}
}

View File

@ -0,0 +1,34 @@
package com.heyu.api.data.service.vv;
/**
* <p>
* 逆向子单表 服务类
* </p>
*
* @author quyixiao
* @since 2025-08-27
*/
import com.baomidou.mybatisplus.extension.service.IService;
import com.heyu.api.data.entity.vv.VvReverseOrderLineEntity;
public interface VvReverseOrderLineService extends IService<VvReverseOrderLineEntity> {
VvReverseOrderLineEntity selectVvReverseOrderLineById(Long id);
Long insertVvReverseOrderLine(VvReverseOrderLineEntity vvReverseOrderLine);
Long insertOrUpdateVvReverseOrderLine(VvReverseOrderLineEntity vvReverseOrderLine);
int updateVvReverseOrderLineById(VvReverseOrderLineEntity vvReverseOrderLine);
int updateCoverVvReverseOrderLineById(VvReverseOrderLineEntity vvReverseOrderLine);
int deleteVvReverseOrderLineById(Long id);
}

View File

@ -1,6 +1,7 @@
package com.heyu.api.common;
package com.heyu.api.data.utils;
import com.alibaba.fastjson.JSON;
import com.heyu.api.common.LBiFunction0;
import com.heyu.api.common.test.AriseUser;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
@ -9,10 +10,8 @@ import org.apache.commons.lang3.ClassUtils;
import java.lang.invoke.SerializedLambda;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.math.BigDecimal;
import java.util.*;
@Slf4j
public class SanUtils {
@ -62,7 +61,6 @@ public class SanUtils {
return list;
}
Map<R, V> map = new HashMap<>();
Method method = getMethod(function);
for (V value : values) {
list.add((R) method.invoke(value));
@ -94,6 +92,49 @@ public class SanUtils {
return listmap;
}
public static <T, R, V> R findAnyNotNull(List<V> values, LBiFunction0<T, R> function) {
try {
if (CollectionUtils.isEmpty(values)) {
return null;
}
Method method = getMethod(function);
for (V value : values) {
R r = (R) method.invoke(value);
if (r != null) {
return r;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static <T, R, V> R sum(List<V> values, LBiFunction0<T, R> function) {
BigDecimal sum = BigDecimal.ZERO;
Class<?> clazz = null;
try {
if (CollectionUtils.isEmpty(values)) {
return null;
}
Method method = getMethod(function);
clazz = method.getReturnType();
for (V value : values) {
R r = (R) method.invoke(value);
if (r != null) {
sum = NumberUtils.objToBigDecimalDefault(r, BigDecimal.ZERO).add(sum);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return (R) parseBasicTypeWrapper(clazz, sum);
}
private static <T, R> Method getMethod(LBiFunction0<T, R> function) {
try {
Method method = function.getClass().getDeclaredMethods()[1];
@ -151,7 +192,6 @@ public class SanUtils {
return null;
}
public static <T, R, V> List<R> convert(List<V> list, LBiFunction0<T, R> function) {
List<Method> methods = getMethods(function);
List result = new ArrayList<>();
@ -174,6 +214,94 @@ public class SanUtils {
return result;
}
/**
* 基本类型包装类解析
*/
public static Object parseBasicTypeWrapper(Class<?> parameterType, Object value) {
if (Number.class.isAssignableFrom(parameterType)) {
if (parameterType == Integer.class || parameterType == int.class) {
return NumberUtils.objToIntDefault(value, null);
} else if (parameterType == Short.class || parameterType == short.class) {
return NumberUtils.objToShortDefault(value, null);
} else if (parameterType == Long.class || parameterType == long.class) {
return NumberUtils.objToLongDefault(value, null);
} else if (parameterType == Float.class || parameterType == float.class) {
return NumberUtils.objToFloatDefault(value, null);
} else if (parameterType == Double.class || parameterType == double.class) {
return NumberUtils.objToDoubleDefault(value, null);
} else if (parameterType == Byte.class || parameterType == byte.class) {
return NumberUtils.objToByteDefault(value, null);
} else if (parameterType == BigDecimal.class) {
return NumberUtils.objToBigDecimalDefault(value, null);
}
} else if (parameterType == Boolean.class || parameterType == boolean.class) {
return NumberUtils.objToBooleanDefault(value, null);
} else if (parameterType == Character.class || parameterType == char.class) {
return NumberUtils.objToCharacterDefault(value, null);
} else if (parameterType == String.class) {
return value !=null ? value.toString() : null ;
}else if (parameterType == Date.class && value instanceof Date){
return value;
} else if (parameterType == Date.class && value instanceof String) {
Object target = DateUtils.parseStr2Date((String) value, YYYY_MM_DD_HH_MM_SS);
if (target == null) {
target = DateUtils.parseStr2Date((String) value, YYYY_MM_DD);
if(target == null){
target = DateUtils.parseStr2Date((String) value, YYYY);
if(target == null){
target = DateUtils.parseStr2Date((String) value, YYYY_MM);
if(target == null){
target = DateUtils.parseStr2Date((String) value, YYYY_MM_DD_HH);
if(target == null){
target = DateUtils.parseStr2Date((String) value, YYYY_MM_DD_HH_MM);
}
}
}
}
}
return target;
}
return null;
}
public static String YYYY = "yyyy";
public static String YYYY_MM = "yyyy-MM";
public static String YYYY_MM_DD = "yyyy-MM-dd";
public static String YYYY_MM_DD_HH = "yyyy-MM-dd HH";
public static String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
private static final List<Class<?>> primitiveTypes = new ArrayList<>(32);
static {
primitiveTypes.add(Boolean.class);
primitiveTypes.add(Byte.class);
primitiveTypes.add(Character.class);
primitiveTypes.add(Double.class);
primitiveTypes.add(Float.class);
primitiveTypes.add(Integer.class);
primitiveTypes.add(Long.class);
primitiveTypes.add(Short.class);
primitiveTypes.add(BigDecimal.class);
primitiveTypes.add(boolean.class);
primitiveTypes.add(byte.class);
primitiveTypes.add(char.class);
primitiveTypes.add(double.class);
primitiveTypes.add(float.class);
primitiveTypes.add(int.class);
primitiveTypes.add(long.class);
primitiveTypes.add(short.class);
primitiveTypes.add(String.class);
primitiveTypes.add(Date.class);
}
public static boolean isBasicDataTypes(Class clazz) {
return primitiveTypes.contains(clazz) ? true : false;
}
public static void main(String[] args) {
AriseUser ai = new AriseUser();
ai.setName("张三");
@ -198,4 +326,5 @@ public class SanUtils {
}
}

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.heyu.api.data.dao.vv.VvReverseOrderLineDao">
</mapper>

View File

@ -94,7 +94,7 @@ public class MysqlMain_insert {
List<TablesBean> list = new ArrayList<TablesBean>();
list.add(new TablesBean("vv_settlement_prove_detail"));
list.add(new TablesBean("vv_reverse_order_line"));

View File

@ -49,7 +49,7 @@ public class MysqlMain_update {
List<TablesBean> list = new ArrayList<TablesBean>();
String a = "vv_trade_order_line";
String a = "vv_reverse_order";
for (String s : a.split(",")) {
list.add(new TablesBean(s));
}

View File

@ -11,7 +11,7 @@ public enum ReverseStatusEnums {
// refunded 退款完成
// close 退款关闭
cancel("cancel","订单取消"),
wait_seller_agree("wait_seller_agree","等待卖家同意"),
buyer_apply_reverse_wait_seller_agree("buyer_apply_reverse_wait_seller_agree","买家申请退款,等待卖家同意,"),
wait_buyer_post("wait_buyer_post","买家邮寄"),
shipping("shipping","运送中"),
delivered("delivered","已签收"),

View File

@ -0,0 +1,22 @@
package com.heyu.api.alibaba.request.mm.reverse;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class AppliyReverseRequest {
/***
* 订单子单列表
*/
private List<Long> tradeOrderLineIds;
/***
* 申请退款金额
*/
private BigDecimal refundAmount;
}

View File

@ -0,0 +1,38 @@
package com.heyu.api.alibaba.request.mm.reverse;
import lombok.Data;
@Data
public class VvReverseListRequest {
private Integer pageNum = 1 ;
private Integer pageSize = 10 ;
//创建时间撮
private Long minCreateTimestamp;
private Long maxCreateTimestamp;
//订单号
private Long tradeOrderId;
//状态 wait_seller_agree 等待卖家同意 , wait_buyer_post 等待买家寄东西, shipping 运送中, delivered 妥投, reject_delivered 拒绝妥投, agree_refunded 同意退款 ,refunded 退款完成 close 退款关闭
private String status;
//退款类型1 仅退款 2 退款退货
private Integer refundType;
//物流追踪号
private String trackNumber;
/***
* 按创建时间排序, ASC DESC
*/
private String createTimestampSort;
}

View File

@ -0,0 +1,30 @@
package com.heyu.api.alibaba.request.mm.reverse;
import com.heyu.api.data.entity.vv.VvReverseOrderEntity;
import com.heyu.api.data.entity.vv.VvReverseOrderLineEntity;
import com.heyu.api.data.entity.vv.VvReverseOrderProveEntity;
import lombok.Data;
import java.util.List;
@Data
public class VvReverseOrderDTO extends VvReverseOrderEntity {
/***
* 退款子单列表
*/
private List<VvReverseOrderLineEntity> vvReverseOrderLineEntities;
/***
* 退款证据列表
*/
private List<VvReverseOrderProveEntity> vvReverseOrderProveEntities;
}

View File

@ -0,0 +1,88 @@
package com.heyu.api.controller.mm;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heyu.api.alibaba.request.mm.reverse.VvReverseListRequest;
import com.heyu.api.alibaba.request.mm.reverse.VvReverseOrderDTO;
import com.heyu.api.data.utils.SanUtils;
import com.heyu.api.data.dao.vv.VvReverseOrderDao;
import com.heyu.api.data.dao.vv.VvReverseOrderLineDao;
import com.heyu.api.data.dao.vv.VvReverseOrderProveDao;
import com.heyu.api.data.entity.vv.VvReverseOrderEntity;
import com.heyu.api.data.entity.vv.VvReverseOrderLineEntity;
import com.heyu.api.data.entity.vv.VvReverseOrderProveEntity;
import com.heyu.api.data.utils.R;
import com.heyu.api.utils.ISelect;
import com.heyu.api.utils.PPageUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@Slf4j
@RestController
@RequestMapping("/mm/reverse")
public class AdminReverseController {
@Autowired
private VvReverseOrderDao vvReverseOrderDao;
@Autowired
private VvReverseOrderLineDao vvReverseOrderLineDao;
@Autowired
private VvReverseOrderProveDao vvReverseOrderProveDao;
/***
* 逆向列表
* @param vvReverseListRequest
* @return
*/
@RequestMapping("/list")
public R list(@RequestBody VvReverseListRequest vvReverseListRequest) {
PPageUtils pageUtils = PPageUtils.startPage(vvReverseListRequest.getPageNum(), vvReverseListRequest.getPageSize())
.doSelect(new ISelect() {
@Override
public List doSelect(IPage page) {
return vvReverseOrderDao.selectByAdminCondition(page,
vvReverseListRequest.getTradeOrderId(),
vvReverseListRequest.getStatus(),
vvReverseListRequest.getTrackNumber(),
vvReverseListRequest.getRefundType(),
vvReverseListRequest.getMinCreateTimestamp(),
vvReverseListRequest.getMaxCreateTimestamp(),
vvReverseListRequest.getCreateTimestampSort()
);
}
});
List<VvReverseOrderEntity> vvReverseOrderEntities = pageUtils.getRows();
List<Long> reverseOrderIds = SanUtils.list2listFilterNull(vvReverseOrderEntities, VvReverseOrderEntity::getId);
List<VvReverseOrderLineEntity> reverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderId(reverseOrderIds);
Map<Long, List<VvReverseOrderLineEntity>> vvReverseOrderLineEntityMap = SanUtils.list2GroupBy(reverseOrderLineEntities, VvReverseOrderLineEntity::getReverseOrderId);
List<VvReverseOrderProveEntity> vvReverseOrderProveEntities = vvReverseOrderProveDao.selectVvReverseOrderProveByReverseOrderId(reverseOrderIds);
Map<Long, List<VvReverseOrderProveEntity>> vvProveMap = SanUtils.list2GroupBy(vvReverseOrderProveEntities, VvReverseOrderProveEntity::getReverseOrderId);
for (VvReverseOrderEntity vvReverseOrderEntity : vvReverseOrderEntities) {
VvReverseOrderDTO vvReverseOrderDTO = new VvReverseOrderDTO();
BeanUtils.copyProperties(vvReverseOrderEntity, vvReverseOrderDTO);
vvReverseOrderDTO.setVvReverseOrderLineEntities(vvReverseOrderLineEntityMap.get(vvReverseOrderEntity.getId()));
vvReverseOrderDTO.setVvReverseOrderProveEntities(vvProveMap.get(vvReverseOrderEntity.getId()));
}
return R.ok().put("page", pageUtils);
}
}

View File

@ -7,7 +7,7 @@ import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums;
import com.heyu.api.alibaba.request.mm.order.*;
import com.heyu.api.alibaba.request.mm.order.resp.PackageDTO;
import com.heyu.api.alibaba.request.mm.order.resp.VVOrderListResp;
import com.heyu.api.common.SanUtils;
import com.heyu.api.data.utils.SanUtils;
import com.heyu.api.data.dao.vv.*;
import com.heyu.api.data.entity.vv.*;
import com.heyu.api.data.utils.BigDecimalUtil;

View File

@ -7,7 +7,7 @@ import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums;
import com.heyu.api.alibaba.request.mm.order.AppDeliveredDTO;
import com.heyu.api.alibaba.request.mm.order.resp.*;
import com.heyu.api.alibaba.request.vv.AppOrderRequest;
import com.heyu.api.common.SanUtils;
import com.heyu.api.data.utils.SanUtils;
import com.heyu.api.data.dao.vv.*;
import com.heyu.api.data.entity.vv.*;
import com.heyu.api.data.utils.BigDecimalUtil;
@ -62,16 +62,11 @@ public class AppOrderController {
@Autowired
private VvBuyerAddressDao vvBuyerAddressDao;
/***
* 列表
*/
@RequestMapping("/list")
public R list(@RequestBody AppOrderRequest vvOrderRequest) {
PPageUtils pageUtils = PPageUtils.startPage(vvOrderRequest.getPageNum(), vvOrderRequest.getPageSize())
.doSelect(new ISelect() {
@Override
@ -102,7 +97,7 @@ public class AppOrderController {
List<VvTradeOrderLineEntity> vvTradeOrderLineEntities = pageUtils.getRows();
// 获取订单
List<Long> tradeOrderIds = SanUtils.list2listFilterNull(vvTradeOrderLineEntities,VvTradeOrderLineEntity::getTradeOrderId );
List<Long> tradeOrderIds = SanUtils.list2listFilterNull(vvTradeOrderLineEntities, VvTradeOrderLineEntity::getTradeOrderId);
List<VvTradeOrderEntity> tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds);
// 对订单进行排序必须按照子单的顺序

View File

@ -0,0 +1,64 @@
package com.heyu.api.controller.vv;
import com.heyu.api.alibaba.request.mm.enums.ReverseStatusEnums;
import com.heyu.api.alibaba.request.mm.reverse.AppliyReverseRequest;
import com.heyu.api.data.utils.SanUtils;
import com.heyu.api.data.dao.vv.VvReverseOrderDao;
import com.heyu.api.data.dao.vv.VvReverseOrderLineDao;
import com.heyu.api.data.dao.vv.VvTradeOrderDao;
import com.heyu.api.data.dao.vv.VvTradeOrderLineDao;
import com.heyu.api.data.entity.vv.VvReverseOrderEntity;
import com.heyu.api.data.entity.vv.VvTradeOrderEntity;
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
import com.heyu.api.data.utils.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Slf4j
@RestController
@RequestMapping("/app/reverse")
public class AppReverseController {
@Autowired
private VvReverseOrderDao vvReverseOrderDao;
@Autowired
private VvReverseOrderLineDao vvReverseOrderLineDao;
@Autowired
private VvTradeOrderLineDao vvTradeOrderLineDao;
@Autowired
private VvTradeOrderDao vvTradeOrderDao;
@RequestMapping("/add")
public R add(@RequestBody AppliyReverseRequest appliyReverseRequest) {
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(appliyReverseRequest.getTradeOrderLineIds());
Long tradeOrderId = SanUtils.findAnyNotNull(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getTradeOrderId);
VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderDao.selectVvTradeOrderById(tradeOrderId);
VvReverseOrderEntity vvReverseOrderEntity = new VvReverseOrderEntity();
vvReverseOrderEntity.setTradeOrderId(tradeOrderId);
vvReverseOrderEntity.setStatus(ReverseStatusEnums.buyer_apply_reverse_wait_seller_agree.getStatus());
// 设置退款金额
vvReverseOrderEntity.setRefundAmount(appliyReverseRequest.getRefundAmount() == null
? SanUtils.sum(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getSalePrice)
: appliyReverseRequest.getRefundAmount());
return R.ok();
}
}