售后item增加售后单号,H5售后详情

pull/1/head
czc 2 years ago
parent 9c9f894567
commit 34af78397c

@ -7,6 +7,7 @@ import com.cyl.h5.pojo.dto.OrderCreateDTO;
import com.cyl.h5.pojo.request.CancelOrderRequest; import com.cyl.h5.pojo.request.CancelOrderRequest;
import com.cyl.h5.pojo.request.OrderPayRequest; import com.cyl.h5.pojo.request.OrderPayRequest;
import com.cyl.h5.pojo.response.OrderPayResponse; import com.cyl.h5.pojo.response.OrderPayResponse;
import com.cyl.h5.pojo.vo.AftersaleRefundInfoVO;
import com.cyl.h5.pojo.vo.CountOrderVO; import com.cyl.h5.pojo.vo.CountOrderVO;
import com.cyl.h5.pojo.vo.H5OrderVO; import com.cyl.h5.pojo.vo.H5OrderVO;
import com.cyl.h5.pojo.vo.OrderCalcVO; import com.cyl.h5.pojo.vo.OrderCalcVO;
@ -96,7 +97,7 @@ public class H5OrderController {
return ResponseEntity.ok(service.orderComplete(orderId)); return ResponseEntity.ok(service.orderComplete(orderId));
}catch (Exception e){ }catch (Exception e){
log.error("确认收货异常",e); log.error("确认收货异常",e);
throw new RuntimeException("确认收货失败"); throw new RuntimeException(e.getMessage());
}finally { }finally {
try{ try{
redisService.unLock(redisKey,redisValue); redisService.unLock(redisKey,redisValue);
@ -199,4 +200,10 @@ public class H5OrderController {
} }
} }
} }
@ApiOperation("售后订单详情")
@GetMapping("/refundOrderDetail")
public ResponseEntity<AftersaleRefundInfoVO> refundOrderDetail(@RequestParam Long orderId){
return ResponseEntity.ok(service.refundOrderDetail(orderId));
}
} }

@ -0,0 +1,73 @@
package com.cyl.h5.pojo.vo;
import com.cyl.manager.oms.domain.OrderItem;
import com.cyl.manager.oms.pojo.vo.AftersaleItemVO;
import com.cyl.manager.oms.pojo.vo.OrderItemVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseAudit;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
*
*
* @author sjm
*/
@Data
public class AftersaleRefundInfoVO extends BaseAudit {
/** ID */
private Long id;
/** MEMBER_ID */
@Excel(name = "MEMBER_ID")
private Long memberId;
/** 订单id */
@Excel(name = "订单id")
private Long orderId;
/** 退款金额 */
@Excel(name = "退款金额")
private BigDecimal returnAmount;
/** 售后类型1退款2退货退款 */
@Excel(name = "售后类型1退款2退货退款")
private Integer type;
/** 申请状态0->待处理1->退货中2->已完成3->已拒绝 */
@Excel(name = "申请状态0->待处理1->退货中2->已完成3->已拒绝")
private Integer status;
/** 处理时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime handleTime;
/** 退款快递公司 */
@Excel(name = "退款快递公司")
private String refundWpCode;
/** 退货快递号 */
@Excel(name = "退货快递号")
private String refundWaybillCode;
/** 退货数量 */
@Excel(name = "退货数量")
private Integer quantity;
/** 原因 */
@Excel(name = "原因")
private String reason;
/** 描述 */
@Excel(name = "描述")
private String description;
/** 凭证图片,以逗号隔开 */
@Excel(name = "凭证图片,以逗号隔开")
private String proofPics;
/** 处理备注 */
@Excel(name = "处理备注")
private String handleNote;
/** 处理人员 */
@Excel(name = "处理人员")
private String handleMan;
/**
* item
*/
private List<AftersaleItemVO> aftersaleItemList;
private List<OrderItemVO> orderItemList;
}

@ -12,11 +12,10 @@ import com.cyl.h5.pojo.dto.*;
import com.cyl.h5.pojo.request.CancelOrderRequest; import com.cyl.h5.pojo.request.CancelOrderRequest;
import com.cyl.h5.pojo.request.OrderPayRequest; import com.cyl.h5.pojo.request.OrderPayRequest;
import com.cyl.h5.pojo.response.OrderPayResponse; import com.cyl.h5.pojo.response.OrderPayResponse;
import com.cyl.h5.pojo.vo.CountOrderVO; import com.cyl.h5.pojo.vo.*;
import com.cyl.h5.pojo.vo.H5OrderVO;
import com.cyl.h5.pojo.vo.OrderCalcVO;
import com.cyl.h5.pojo.vo.SkuViewDTO;
import com.cyl.h5.pojo.vo.form.OrderSubmitForm; import com.cyl.h5.pojo.vo.form.OrderSubmitForm;
import com.cyl.manager.oms.convert.AftersaleItemConvert;
import com.cyl.manager.oms.convert.OrderItemConvert;
import com.cyl.manager.oms.domain.*; import com.cyl.manager.oms.domain.*;
import com.cyl.manager.oms.mapper.*; import com.cyl.manager.oms.mapper.*;
import com.cyl.manager.oms.service.OrderItemService; import com.cyl.manager.oms.service.OrderItemService;
@ -48,6 +47,7 @@ import com.ruoyi.common.utils.IDGenerator;
import com.ruoyi.framework.config.LocalDataUtil; import com.ruoyi.framework.config.LocalDataUtil;
import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction; import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@ -116,6 +116,15 @@ public class H5OrderService {
@Autowired @Autowired
private AftersaleMapper aftersaleMapper; private AftersaleMapper aftersaleMapper;
@Autowired
private AftersaleItemMapper aftersaleItemMapper;
@Autowired
private AftersaleItemConvert aftersaleItemConvert;
@Autowired
private OrderItemConvert orderItemConvert;
@Transactional @Transactional
public Long submit(OrderSubmitForm form) { public Long submit(OrderSubmitForm form) {
Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO);
@ -627,6 +636,7 @@ public class H5OrderService {
orderItemList.forEach(orderItem -> { orderItemList.forEach(orderItem -> {
AftersaleItem aftersaleItem = new AftersaleItem(); AftersaleItem aftersaleItem = new AftersaleItem();
aftersaleItem.setMemberId(memberId); aftersaleItem.setMemberId(memberId);
aftersaleItem.setAftersaleId(addAftersale.getId());
aftersaleItem.setOrderId(orderItem.getOrderId()); aftersaleItem.setOrderId(orderItem.getOrderId());
aftersaleItem.setOrderItemId(orderItem.getId()); aftersaleItem.setOrderItemId(orderItem.getId());
aftersaleItem.setReturnAmount(orderItem.getSalePrice().multiply(BigDecimal.valueOf(orderItem.getQuantity()))); aftersaleItem.setReturnAmount(orderItem.getSalePrice().multiply(BigDecimal.valueOf(orderItem.getQuantity())));
@ -637,7 +647,7 @@ public class H5OrderService {
aftersaleItem.setUpdateBy(memberId); aftersaleItem.setUpdateBy(memberId);
addAftersaleItemList.add(aftersaleItem); addAftersaleItemList.add(aftersaleItem);
}); });
rows = aftersaleMapper.insertBatch(addAftersaleItemList); rows = aftersaleItemMapper.insertBatch(addAftersaleItemList);
if (rows < 1){ if (rows < 1){
throw new RuntimeException("创建售后订单item失败"); throw new RuntimeException("创建售后订单item失败");
} }
@ -737,4 +747,34 @@ public class H5OrderService {
} }
return "售后取消成功"; return "售后取消成功";
} }
/**
*
* @param orderId id
* @return
*/
public AftersaleRefundInfoVO refundOrderDetail(Long orderId) {
QueryWrapper<Aftersale> aftersaleQw = new QueryWrapper<>();
aftersaleQw.eq("order_id", orderId);
aftersaleQw.orderByDesc("create_time");
aftersaleQw.last("limit 1");
Aftersale aftersale = aftersaleMapper.selectOne(aftersaleQw);
if (aftersale == null){
throw new RuntimeException("未查询到售后订单");
}
//查一下售后订单item
QueryWrapper<AftersaleItem> aftersaleItemQw = new QueryWrapper<>();
aftersaleItemQw.eq("aftersale_id", aftersale.getId());
List<AftersaleItem> aftersaleItemList = aftersaleItemMapper.selectList(aftersaleItemQw);
List<Long> orderItemIdList = aftersaleItemList.stream().map(AftersaleItem::getOrderItemId).collect(Collectors.toList());
//再去查orderItem
QueryWrapper<OrderItem> orderItemQw = new QueryWrapper<>();
orderItemQw.in("id", orderItemIdList);
List<OrderItem> orderItemList = orderItemMapper.selectList(orderItemQw);
AftersaleRefundInfoVO vo = new AftersaleRefundInfoVO();
BeanUtils.copyProperties(aftersale, vo);
vo.setAftersaleItemList(aftersaleItemConvert.dos2vos(aftersaleItemList));
vo.setOrderItemList(orderItemConvert.dos2vos(orderItemList));
return vo;
}
} }

@ -25,6 +25,10 @@ public class AftersaleItem extends BaseAudit {
@Excel(name = "MEMBER_ID") @Excel(name = "MEMBER_ID")
private Long memberId; private Long memberId;
@ApiModelProperty("售后单id")
@Excel(name = "售后单id")
private Long aftersaleId;
@ApiModelProperty("订单id") @ApiModelProperty("订单id")
@Excel(name = "订单id") @Excel(name = "订单id")
private Long orderId; private Long orderId;

@ -3,6 +3,7 @@ package com.cyl.manager.oms.mapper;
import java.util.List; import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cyl.manager.oms.domain.AftersaleItem; import com.cyl.manager.oms.domain.AftersaleItem;
import org.apache.ibatis.annotations.Param;
/** /**
* Mapper * Mapper
@ -17,4 +18,7 @@ public interface AftersaleItemMapper extends BaseMapper<AftersaleItem> {
* @return * @return
*/ */
List<AftersaleItem> selectByEntity(AftersaleItem aftersaleItem); List<AftersaleItem> selectByEntity(AftersaleItem aftersaleItem);
Integer insertBatch(@Param("list") List<AftersaleItem> list);
} }

@ -22,8 +22,6 @@ public interface AftersaleMapper extends BaseMapper<Aftersale> {
*/ */
List<Aftersale> selectByEntity(Aftersale aftersale); List<Aftersale> selectByEntity(Aftersale aftersale);
Integer insertBatch(@Param("list") List<AftersaleItem> list);
List<ManagerRefundOrderVO> selectManagerRefundOrder(ManagerAftersaleOrderRequest managerAftersaleOrderPageRequest); List<ManagerRefundOrderVO> selectManagerRefundOrder(ManagerAftersaleOrderRequest managerAftersaleOrderPageRequest);
} }

@ -16,6 +16,9 @@ public class AftersaleItemVO extends BaseAudit {
/** MEMBER_ID */ /** MEMBER_ID */
@Excel(name = "MEMBER_ID") @Excel(name = "MEMBER_ID")
private Long memberId; private Long memberId;
/** 售后单id */
@Excel(name = "售后单id")
private Long aftersaleId;
/** 订单id */ /** 订单id */
@Excel(name = "订单id") @Excel(name = "订单id")
private Long orderId; private Long orderId;

@ -25,6 +25,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select id, member_id, order_id, order_item_id, return_amount, quantity, create_by, create_time, update_by, update_time from oms_aftersale_item select id, member_id, order_id, order_item_id, return_amount, quantity, create_by, create_time, update_by, update_time from oms_aftersale_item
</sql> </sql>
<insert id="insertBatch" parameterType="list">
insert into oms_aftersale_item
(member_id,order_id,aftersale_id,order_item_id,return_amount,quantity,create_by,create_time,update_by,update_time)
values
<foreach collection="list" item="item" separator=",">
<trim prefix="(" suffix=")" suffixOverrides=",">
#{item.memberId,jdbcType=BIGINT},
#{item.orderId,jdbcType=BIGINT},
#{item.aftersaleId,jdbcType=BIGINT},
#{item.orderItemId,jdbcType=BIGINT},
#{item.returnAmount,jdbcType=DECIMAL},
#{item.quantity,jdbcType=BIGINT},
#{item.createBy,jdbcType=BIGINT},
#{item.createTime,jdbcType=DATE},
#{item.updateBy,jdbcType=BIGINT},
#{item.updateTime,jdbcType=DATE}
</trim>
</foreach>
</insert>
<select id="selectByEntity" parameterType="AftersaleItem" resultMap="AftersaleItemResult"> <select id="selectByEntity" parameterType="AftersaleItem" resultMap="AftersaleItemResult">
<include refid="selectAftersaleItemVo"/> <include refid="selectAftersaleItemVo"/>
<where> <where>

@ -31,24 +31,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectAftersaleVo"> <sql id="selectAftersaleVo">
select id, member_id, order_id, return_amount, type, status, handle_time, quantity, reason, description, proof_pics, handle_note, handle_man, create_by, create_time, update_by, update_time from oms_aftersale select id, member_id, order_id, return_amount, type, status, handle_time, quantity, reason, description, proof_pics, handle_note, handle_man, create_by, create_time, update_by, update_time from oms_aftersale
</sql> </sql>
<insert id="insertBatch" parameterType="list">
insert into oms_aftersale_item
(member_id,order_id,order_item_id,return_amount,quantity,create_by,create_time,update_by,update_time)
values
<foreach collection="list" item="item" separator=",">
<trim prefix="(" suffix=")" suffixOverrides=",">
#{item.memberId,jdbcType=BIGINT},
#{item.orderId,jdbcType=BIGINT},
#{item.orderItemId,jdbcType=BIGINT},
#{item.returnAmount,jdbcType=DECIMAL},
#{item.quantity,jdbcType=BIGINT},
#{item.createBy,jdbcType=BIGINT},
#{item.createTime,jdbcType=DATE},
#{item.updateBy,jdbcType=BIGINT},
#{item.updateTime,jdbcType=DATE}
</trim>
</foreach>
</insert>
<select id="selectByEntity" parameterType="Aftersale" resultMap="AftersaleResult"> <select id="selectByEntity" parameterType="Aftersale" resultMap="AftersaleResult">
<include refid="selectAftersaleVo"/> <include refid="selectAftersaleVo"/>

Loading…
Cancel
Save