rk
8 小时以前 56fcde8c93a1a10bc50fac775e370a2db57f520e
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -85,6 +85,12 @@
    private ShopGoodsRelationMapper shopGoodsRelationMapper;
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
    private CouponMapper couponMapper;
    @Autowired
    private MemberCouponJoinMapper memberCouponJoinMapper;
    @Autowired
    private InviteRecordMapper inviteRecordMapper;
    @Autowired
    private GoodsorderDetailMapper goodsorderDetailMapper;
@@ -1682,11 +1688,66 @@
        //根据订单类型进行积分赠送
        //下单确认收货 ,赠送经销商积分
        this.orderAddShopIntegral(goodsorder);
        //下单完成 根据信息确认是否需要赠送邀请者优惠券
        this.orderDoneRewardInviteCoupon(goodsorder);
        //消费者确认收货
        this.orderAddMemberIntegral(goodsorder);
        //经销商 结算金额
        this.orderAddShopCash(goodsorder);
    }
    /**
     * 订单确认收货,赠送邀请者优惠券
     * @param
     */
    public void orderDoneRewardInviteCoupon(Goodsorder goodsorder){
        PlatformConfigDTO platformConfigDTO = systemDictDataService.getPlatformConfigDTO();
        if (platformConfigDTO.getShareCouponRewardStatus().equals(Constants.ONE)) {
            return;
        }
        Member member = memberMapper.selectById(goodsorder.getMemberId());
        if(Objects.isNull(member)||member.getIsdeleted().equals(Constants.ONE)){
            return;
        }
        InviteRecord inviteRecord = inviteRecordMapper.selectOne(new QueryWrapper<InviteRecord>().lambda()
                .eq(InviteRecord::getMemberId,member.getId())
                .eq(InviteRecord::getIsdeleted,Constants.ZERO)
                .eq(InviteRecord::getFirstOrderStatus,Constants.ZERO)
                .last("limit 1")
        );
        if(Objects.isNull(inviteRecord)){
            return;
        }
        Member inviteMember = memberMapper.selectById(inviteRecord.getInviteId());
        if(Objects.isNull(inviteMember)||inviteMember.getIsdeleted().equals(Constants.ONE)){
            return;
        }
        List<JSONObject> shareCouponRewardList = platformConfigDTO.getShareCouponRewardList();
        //[{"num":"2","couponId":6},{"num":"3","couponId":5}]
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(shareCouponRewardList)){
            List<MemberCoupon> memberCouponList = new ArrayList<>();
            for (JSONObject jsonObject:shareCouponRewardList) {
                Integer couponId = jsonObject.getInteger("couponId");
                Integer num = jsonObject.getInteger("num");
                Coupon coupon =  couponMapper.selectById(couponId);
                if(Objects.isNull(coupon)||Constants.equalsInteger(coupon.getIsdeleted(),Constants.ONE)&&num>Constants.ZERO){
                    continue;
                }
                MemberCoupon memberCoupon = MemberCoupon.couponToBean(coupon,inviteMember,new Date(),Constants.ONE,null);
                for (int i = 0; i < num; i++) {
                    memberCouponList.add(memberCoupon);
                }
            }
            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(memberCouponList)){
                memberCouponJoinMapper.insert(memberCouponList);
            }
        }
    }
    /**
     * 订单核销
@@ -1721,6 +1782,8 @@
        if(Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ZERO)){
            //赠送消费者积分
            this.orderAddMemberIntegral(goodsorder);
            //下单完成 根据信息确认是否需要赠送邀请者优惠券
            this.orderDoneRewardInviteCoupon(goodsorder);
            //经销商 添加赠送积分
            this.orderAddShopIntegral(goodsorder);
            //经销商 结算金额