|
|
@@ -7,6 +7,7 @@ import com.zhongzheng.common.exception.CustomException;
|
|
|
import com.zhongzheng.common.utils.DateUtils;
|
|
|
import com.zhongzheng.modules.goods.domain.Goods;
|
|
|
import com.zhongzheng.modules.goods.service.IGoodsService;
|
|
|
+import com.zhongzheng.modules.order.bo.OrderGoodsQueryBo;
|
|
|
import com.zhongzheng.modules.order.bo.OrderGoodsRefundAddBo;
|
|
|
import com.zhongzheng.modules.order.bo.OrderGoodsRefundEditBo;
|
|
|
import com.zhongzheng.modules.order.bo.OrderGoodsRefundQueryBo;
|
|
|
@@ -18,6 +19,7 @@ import com.zhongzheng.modules.order.service.IOrderGoodsRefundService;
|
|
|
import com.zhongzheng.modules.order.service.IOrderGoodsService;
|
|
|
import com.zhongzheng.modules.order.service.IOrderService;
|
|
|
import com.zhongzheng.modules.order.vo.OrderGoodsRefundVo;
|
|
|
+import com.zhongzheng.modules.order.vo.OrderGoodsVo;
|
|
|
import com.zhongzheng.modules.user.domain.User;
|
|
|
import com.zhongzheng.modules.wx.service.IWxPayService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -100,7 +102,7 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Map<String, String> placeRefundSmallOrder(OrderGoodsRefundAddBo bo) {
|
|
|
+ public Boolean placeRefundSmallOrder(OrderGoodsRefundAddBo bo) {
|
|
|
OrderGoods orderGoods = iOrderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderSn,bo.getOrderSn())
|
|
|
.eq(OrderGoods::getGoodsId, bo.getGoodsId()));
|
|
|
if(Validator.isEmpty(orderGoods)){
|
|
|
@@ -127,6 +129,11 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
|
|
|
Goods goods = iGoodsService.getOne(new LambdaQueryWrapper<Goods>().eq(Goods::getGoodsId,bo.getGoodsId()));
|
|
|
if(goods.getGoodsType()==1){
|
|
|
//视频商品
|
|
|
+
|
|
|
+ }
|
|
|
+ if(goods.getGoodsType()==2){
|
|
|
+ //题库商品
|
|
|
+
|
|
|
}
|
|
|
OrderGoodsRefund add = BeanUtil.toBean(bo, OrderGoodsRefund.class);
|
|
|
validEntityBeforeSave(add);
|
|
|
@@ -137,8 +144,50 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
|
|
|
add.setRefundSn(out_trade_no);
|
|
|
add.setRefundFee(orderGoods.getGoodsReceived());
|
|
|
add.setUserId(order.getUserId());
|
|
|
- Map<String, String> payResult = iWxPayService.refund(out_trade_no,order.getTransid(),order.getPayPrice().toString(),"1");
|
|
|
- return null;
|
|
|
+ if(this.save(add)){
|
|
|
+ Map<String, String> payResult = iWxPayService.refund(out_trade_no,order.getTransid(),order.getPayPrice().toString(),"1");
|
|
|
+ if("OK".equals(payResult.get("return_msg"))){
|
|
|
+ return refundCall(payResult.get("refund_id"),add.getRefundId(),orderGoods.getOrderGoodsId(),order);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Boolean refundCall(String WxpayRefundId,Long refundId,Long orderGoodsId,Order order){
|
|
|
+ OrderGoodsRefund update = new OrderGoodsRefund();
|
|
|
+ update.setRefundId(refundId);
|
|
|
+ update.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ update.setWxpayRefundId(WxpayRefundId);
|
|
|
+ this.updateById(update);
|
|
|
+ //修改订单商品退款状态
|
|
|
+ OrderGoods orderGoods = new OrderGoods();
|
|
|
+ orderGoods.setOrderGoodsId(orderGoodsId);
|
|
|
+ orderGoods.setRefundStatus(2); //已退款
|
|
|
+ orderGoods.setPayStatus(1); //未收费
|
|
|
+ orderGoods.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ iOrderGoodsService.updateById(orderGoods);
|
|
|
+
|
|
|
+ OrderGoodsQueryBo bo = new OrderGoodsQueryBo();
|
|
|
+ bo.setOrderSn(order.getOrderSn());
|
|
|
+ List<OrderGoodsVo> orderGoodsVoList = iOrderGoodsService.selectList(bo);
|
|
|
+ boolean allRefund = true;
|
|
|
+ for (OrderGoodsVo g : orderGoodsVoList) {
|
|
|
+ if(g.getRefundStatus()!=2){
|
|
|
+ allRefund = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //都退款
|
|
|
+ if(allRefund){
|
|
|
+ order.setStatus(0);
|
|
|
+ order.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ order.setOrderStatus(Order.REFUND_FULL);
|
|
|
+ }else {
|
|
|
+ //部分退款
|
|
|
+ order.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ order.setOrderStatus(Order.REFUND_PART);
|
|
|
+ }
|
|
|
+ iOrderService.updateById(order);
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
@Override
|