rk
9 小时以前 77fc61a25c14071584e45731476207959137d6b6
server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java
@@ -59,6 +59,8 @@
    @Autowired
    private GoodsorderMapper goodsorderMapper;
    @Autowired
    private NoticeMapper noticeMapper;
    @Autowired
    private ShopMapper shopMapper;
    @Autowired
    private MemberMapper memberMapper;
@@ -318,7 +320,7 @@
        param.setDealType(Constants.ZERO);
        param.setIntegralNum(integral);
        param.setIntegralObjType(Constants.IntegralObjType.AFTERSALE_BACK);
        integralService.dealIntegral(param);
        integralService.dealIntegral(param,null);
    }
    private void isBackMoneyValid(BigDecimal actmoney, BigDecimal perPrice, Integer goodsNum, BigDecimal orderPrice,BigDecimal orderIntegral, BigDecimal orderCouponPrice) {
@@ -1009,7 +1011,8 @@
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public void afterSaleApply(AfterSaleApplyRequest afterSaleApplyRequest, Integer userId){
    public void afterSaleApply(AfterSaleApplyRequest afterSaleApplyRequest){
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(Objects.isNull(afterSaleApplyRequest)
            || Objects.isNull(afterSaleApplyRequest.getOrderId())
                || Objects.isNull(afterSaleApplyRequest.getReturnUseIntegralStatus())
@@ -1032,6 +1035,7 @@
        }
        Aftersale aftersale = new Aftersale();
        aftersale.setCreateDate(new Date());
        aftersale.setCreator(loginUserInfo.getId());
        aftersale.setIsdeleted(Constants.ZERO);
        aftersale.setOrderId(goodsorder.getId());
        aftersale.setType(Constants.ZERO);
@@ -1045,8 +1049,8 @@
        aftersale.setReturnShopSettlement(BigDecimal.ZERO);
        aftersale.setCode(getNextInCode());
        //订单退回 返回给经销商的积分
        if(Objects.nonNull(goodsorder.getDistributionShopId())&&goodsorder.getReturnCustomerIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
        //订单退回返回给经销商的积分
        if(Objects.nonNull(goodsorder.getDistributionShopId())){
            Shop shop = shopMapper.selectById(goodsorder.getDistributionShopId());
            //经销商存在剩余积分
            if(Objects.nonNull(shop)&&shop.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
@@ -1062,13 +1066,13 @@
                    dealIntegralRequest.setObjId(goodsorder.getId());
                    dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
                    dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_REFUND_INTEGRAL);
                    integralService.dealShopIntegral(dealIntegralRequest);
                    integralService.dealShopIntegral(dealIntegralRequest,null);
                }
            }
        }
        //订单退回 经销商结算余额
        if(Objects.nonNull(goodsorder.getDistributionShopId())&&goodsorder.getShopSettlement().compareTo(BigDecimal.ZERO)>Constants.ZERO){
        if(Objects.nonNull(goodsorder.getDistributionShopId())){
            Shop shop = shopMapper.selectById(goodsorder.getDistributionShopId());
            //经销商存在剩余积分
            if(Objects.nonNull(shop)&&shop.getAmount().compareTo(BigDecimal.ZERO)>Constants.ZERO){
@@ -1091,7 +1095,7 @@
        }
        //订单退回 返还给客户的积分
        if(Objects.nonNull(goodsorder.getDistributionShopId())&&goodsorder.getReturnMemberIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
        if(Objects.nonNull(goodsorder.getDistributionShopId())){
            Member member = memberMapper.selectById(goodsorder.getMemberId());
            //客户存在剩余积分
            if(Objects.nonNull(member)&&member.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
@@ -1107,7 +1111,7 @@
                    dealIntegralRequest.setObjId(goodsorder.getId());
                    dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
                    dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER_REFUND_RETURN);
                    integralService.dealIntegral(dealIntegralRequest);
                    integralService.dealIntegral(dealIntegralRequest,null);
                }
            }
        }
@@ -1122,7 +1126,8 @@
            dealIntegralRequest.setObjId(goodsorder.getId());
            dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER_REFUND);
            integralService.dealIntegral(dealIntegralRequest);
            dealIntegralRequest.setParam1(goodsorder.getCode().toString());
            integralService.dealIntegral(dealIntegralRequest,null);
        }
        //订单退款 退回客户使用的优惠券
@@ -1141,10 +1146,10 @@
            String refundCode = WxMiniUtilService.wxRefund(goodsorder.getCode().toString(), goodsorder.getPrice(), afterSaleApplyRequest.getMoney());
            Fund fund = new Fund();
            fund.setOrderCode(refundCode);
            fund.setCreator(userId);
            fund.setCreator(loginUserInfo.getId());
            fund.setCreateDate(new Date());
            fund.setIsdeleted(Constants.ZERO);
            fund.setRemark(userId.toString());
            fund.setRemark(loginUserInfo.getId().toString());
            fund.setMemberId(goodsorder.getCreator());
            fund.setTitle("订单退款");
            fund.setContent(afterSaleApplyRequest.getRemark());
@@ -1163,9 +1168,29 @@
        goodsorderMapper.update(null,new UpdateWrapper<Goodsorder>().lambda()
                .set(Goodsorder::getStatus, Constants.OrderStatus.REFUND.getKey())
                .set(Goodsorder::getRefundTime, DateUtil.getCurrDateTime())
                .set(Goodsorder::getRefundMoney, afterSaleApplyRequest.getMoney())
                .set(Goodsorder::getRefundUserId, loginUserInfo.getId())
                .set(Goodsorder::getRefundInfo, afterSaleApplyRequest.getRemark())
                .eq(Goodsorder::getId, goodsorder.getId())
        );
        //释放核销码
        if(Constants.equalsInteger(goodsorder.getReceiveType(),Constants.ONE)&&StringUtils.isNotBlank(goodsorder.getExchangeCode())){
            RedisUtil.deleteObject(redisTemplate,Constants.RedisKeys.EXCHANGE_KEY+goodsorder.getExchangeCode());
        }
        //发送订单退款站内信
        Notice notice = Notice.getNotice(
                Constants.NoticeType.NOTICE_ORDER_REFUND,
                goodsorder.getMemberId(),
                goodsorder.getId()
        );
        notice.setContent(notice.getContent().replace("{param}",goodsorder.getCode().toString()));
        noticeMapper.insert(notice);
    }