rk
13 小时以前 b1dbef13075c3a6fea62e41db4cdcd7334e1e92b
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -1205,6 +1205,10 @@
        goodsorder.setCancelInfo(cancelInfo);
        goodsorder.setCancelUser(optUserId);
        goodsorderMapper.updateById(goodsorder);
        if(Constants.equalsInteger(goodsorder.getReceiveType(),Constants.ONE)){
            //释放核销码
            this.releaseExchangeCode(goodsorder.getExchangeCode());
        }
        String goodsName = "";
        List<GoodsorderDetail> goodsorderDetailList =  goodsorderDetailMapper.selectList(new QueryWrapper<GoodsorderDetail>().eq("ORDER_ID",goodsorder.getId()));
        if(!Objects.isNull(goodsorderDetailList)&&goodsorderDetailList.size()>Constants.ZERO){
@@ -1282,6 +1286,10 @@
        goodsorder.setCancelInfo(StringUtils.isBlank(cancelInfo)?"用户主动取消":cancelInfo);
        goodsorder.setCancelUser(optUserId);
        goodsorderMapper.updateById(goodsorder);
        if(Constants.equalsInteger(goodsorder.getReceiveType(),Constants.ONE)){
            //释放核销码
            this.releaseExchangeCode(goodsorder.getExchangeCode());
        }
        String goodsName = "";
        List<GoodsorderDetail> goodsorderDetailList =  goodsorderDetailMapper.selectList(new QueryWrapper<GoodsorderDetail>().eq("ORDER_ID",goodsorder.getId()));
        if(!Objects.isNull(goodsorderDetailList)&&goodsorderDetailList.size()>Constants.ZERO){
@@ -1311,8 +1319,6 @@
                memberCouponMapper.updateById(memberCoupon);
            }
        }
    }
    public BigDecimal getDeductAmount(List<PayDetailRequest> requestList){
@@ -1777,6 +1783,8 @@
        goodsorder.setStatus(Constants.OrderStatus.DONE.getKey());
        goodsorder.setDoneDate(new Date());
        goodsorderMapper.updateById(goodsorder);
        //释放核销码
        this.releaseExchangeCode(goodsorder.getExchangeCode());
        //存在现金支付 赠送 积分
        if(Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ZERO)){
            //赠送消费者积分
@@ -1911,8 +1919,6 @@
        if(!goodsorder.getStatus().equals(Constants.OrderStatus.DONE.getKey())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"操作失败:订单未完成,无法退款!");
        }
    }
@@ -2222,4 +2228,39 @@
    @Override
    public String createExchangeCode(){
        List<Goodsorder> goodsorderList = goodsorderMapper.selectList(new QueryWrapper<Goodsorder>().lambda()
                .eq(Goodsorder::getIsdeleted,Constants.ZERO)
                .eq(Goodsorder::getReceiveType,Constants.ONE)
                .in(Goodsorder::getStatus,Constants.OrderStatus.WAIT_RECEIVE.getKey(),
                Constants.OrderStatus.WAIT_PAY.getKey(),
                Constants.OrderStatus.PAY_DONE.getKey())
        );
        String exchangeCode = UniqueVerificationCodeGenerator.generateNumericCode();
        if(CollectionUtils.isNotEmpty(goodsorderList)){
            Boolean flag = true;
            while (flag){
                String finalExchangeCode = exchangeCode;
                flag = goodsorderList.stream().filter(i->i.getExchangeCode().equals(finalExchangeCode)).count()>0L?true:false;
                if(flag){
                    exchangeCode = UniqueVerificationCodeGenerator.generateNumericCode();
                }
            }
        }
        RedisUtil.addObject(redisTemplate,Constants.RedisKeys.EXCHANGE_KEY+exchangeCode,exchangeCode);
        return exchangeCode;
    }
    /**
     * 释放核销码
     * @param code
     */
    public void releaseExchangeCode(String code){
        if(StringUtils.isNotBlank(code)){
            RedisUtil.deleteObject(redisTemplate,Constants.RedisKeys.EXCHANGE_KEY+code);
        }
    }
}