| | |
| | | queryWrapper.le(pageWrap.getModel().getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getModel().getEndtime()); |
| | | queryWrapper.eq(pageWrap.getModel().getReceiveType()!=null,Goodsorder::getReceiveType,pageWrap.getModel().getReceiveType()); |
| | | queryWrapper.eq(pageWrap.getModel().getPayOrderId()!=null,Goodsorder::getPayOrderId,pageWrap.getModel().getPayOrderId()); |
| | | if (StringUtils.isNotBlank(pageWrap.getModel().getGoodsName())) { |
| | | queryWrapper.exists("select gs.id from goodsorder_detail gs where gs.order_id=t.id and gs.isdeleted=0 and gs.NAME like '%"+pageWrap.getModel().getGoodsName()+"%' "); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | 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){ |
| | |
| | | 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){ |
| | |
| | | memberCouponMapper.updateById(memberCoupon); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | public BigDecimal getDeductAmount(List<PayDetailRequest> requestList){ |
| | |
| | | List<MemberCoupon> memberCouponList = new ArrayList<>(); |
| | | List<CouponNoticeRequest> requestList = new ArrayList<>(); |
| | | for (JSONObject jsonObject:shareCouponRewardList) { |
| | | if(!jsonObject.containsKey("couponId")||!jsonObject.containsKey("num")){ |
| | | continue; |
| | | } |
| | | Integer couponId = jsonObject.getInteger("couponId"); |
| | | Integer num = jsonObject.getInteger("num"); |
| | | Coupon coupon = couponMapper.selectById(couponId); |
| | |
| | | continue; |
| | | } |
| | | MemberCoupon memberCoupon = MemberCoupon.couponToBean(coupon,inviteMember,new Date(),Constants.ONE,null); |
| | | if(Constants.equalsInteger(memberCoupon.getCouponType(),Constants.ZERO)){ |
| | | memberCoupon.setMaxPrice(memberCoupon.getPrice()); |
| | | }else if(Constants.equalsInteger(memberCoupon.getCouponType(),Constants.ONE)){ |
| | | memberCoupon.setMaxPrice(memberCoupon.getLimitPrice().subtract(memberCoupon.getLimitPrice().multiply(memberCoupon.getPrice()).divide(new BigDecimal("100"),2, RoundingMode.HALF_UP))); |
| | | }else{ |
| | | memberCoupon.setMaxPrice(BigDecimal.ZERO); |
| | | } |
| | | for (int i = 0; i < num; i++) { |
| | | //满减卷不会生成maxPrice 需要根据优惠券减少金额设置 |
| | | if(Constants.equalsInteger(coupon.getCouponType(),Constants.ZERO)){ |
| | | memberCoupon.setMaxPrice(coupon.getPrice()); |
| | | } |
| | | memberCouponList.add(memberCoupon); |
| | | } |
| | | couponIds = couponIds + (StringUtils.isBlank(couponIds)? ",":"" )+ couponId ; |
| | |
| | | goodsorder.setStatus(Constants.OrderStatus.DONE.getKey()); |
| | | goodsorder.setDoneDate(new Date()); |
| | | goodsorderMapper.updateById(goodsorder); |
| | | //释放核销码 |
| | | this.releaseExchangeCode(goodsorder.getExchangeCode()); |
| | | //存在现金支付 赠送 积分 |
| | | if(Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ZERO)){ |
| | | //赠送消费者积分 |
| | |
| | | if(!goodsorder.getStatus().equals(Constants.OrderStatus.DONE.getKey())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"操作失败:订单未完成,无法退款!"); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | |
| | | |
| | | @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); |
| | | } |
| | | } |
| | | |
| | | } |