MrShi
16 小时以前 297734ace4c05848b28a792fa89f38bee67be3c1
server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
@@ -146,8 +146,10 @@
    @Override
    @Transactional(rollbackFor = {Exception.class, BusinessException.class})
    public Integer dealIntegral(DealIntegralRequest dealIntegralRequest) {
        Member member = memberMapper.selectById(dealIntegralRequest.getMemberId());
    public Integer dealIntegral(DealIntegralRequest dealIntegralRequest,Member member) {
        if(member == null){
              member = memberMapper.selectById(dealIntegralRequest.getMemberId());
        }
        if(Objects.isNull(member)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到用户信息");
        }
@@ -163,6 +165,7 @@
            info = info .replace("${param1}",dealIntegralRequest.getParam1());
        }
        integral.setContent(info);
        integral.setRemark(dealIntegralRequest.getRemark());
        integral.setObjId(dealIntegralRequest.getObjId());
        integral.setObjType(dealIntegralRequest.getIntegralObjType().getKey());
        integral.setType(dealIntegralRequest.getDealType());
@@ -171,27 +174,29 @@
        integral.setOrderCode(dealIntegralRequest.getOrderCode());
        integral.setUserType(Constants.ZERO);
        integralMapper.insert(integral);
        if(dealIntegralRequest.getDealType().equals(Constants.ZERO)){
            memberMapper.addIntegral(member.getId(),dealIntegralRequest.getIntegralNum(),
                    dealIntegralRequest.getIntegralObjType().getAddTitle()==Constants.ZERO?dealIntegralRequest.getIntegralNum():BigDecimal.ZERO);
        }else{
            memberMapper.subtractIntegral(member.getId(),dealIntegralRequest.getIntegralNum());
        }
        LoginUserInfo user =(LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        memberMapper.update(null,new UpdateWrapper<Member>().lambda()
                .eq(Member::getId,member.getId())
                .set(Member::getEditDate,new Date())
                .set(Member::getEditor,user!=null ? user.getId():null)
                .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"total_integral = ifnull(total_integral,0)+" + dealIntegralRequest.getIntegralNum())//累计增加
                .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"integral = ifnull(integral,0)+" +  dealIntegralRequest.getIntegralNum())
                .setSql(dealIntegralRequest.getDealType().equals(Constants.ONE),"integral = ifnull(integral,0)-" + dealIntegralRequest.getIntegralNum()));
        //站内信
        noticeService.saveMemberIntegralNotice(
                dealIntegralRequest.getIntegralObjType(),Constants.ZERO,member.getId(),dealIntegralRequest.getIntegralNum(),
                integral.getId(), info
        );
        return integral.getId();
    }
    @Override
    @Transactional(rollbackFor = {Exception.class, BusinessException.class})
    public Integer dealShopIntegral(DealIntegralRequest dealIntegralRequest) {
        Shop shop = shopMapper.selectById(dealIntegralRequest.getMemberId());
    public Integer dealShopIntegral(DealIntegralRequest dealIntegralRequest,Shop shop) {
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(shop ==null){
            shop = shopMapper.selectById(dealIntegralRequest.getMemberId());
        }
        if(Objects.isNull(shop)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到商户信息");
        }
@@ -199,7 +204,7 @@
        integral.setMemberId(shop.getId());
        integral.setCreateDate(new Date());
        integral.setIsdeleted(Constants.ZERO);
        integral.setTitle(dealIntegralRequest.getIntegralObjType().getName());
        integral.setTitle( dealIntegralRequest.getIntegralObjType()!=null?dealIntegralRequest.getIntegralObjType().getName():"");
        String info = dealIntegralRequest.getIntegralObjType().getNoteinfo();
        info = info.replace("${param}",dealIntegralRequest.getIntegralNum().toString());
        if(StringUtils.isNotBlank(dealIntegralRequest.getParam1())){
@@ -209,19 +214,28 @@
        integral.setObjId(dealIntegralRequest.getObjId());
        integral.setObjType(dealIntegralRequest.getIntegralObjType().getKey());
        integral.setType(dealIntegralRequest.getDealType());
        integral.setRemark(dealIntegralRequest.getRemark());
        integral.setNum(dealIntegralRequest.getIntegralNum());
        shop.setIntegral(Constants.formatBigdecimal(shop.getIntegral()));
        integral.setTotalNum(dealIntegralRequest.getDealType().equals(Constants.ZERO)? shop.getIntegral().add(integral.getNum()):shop.getIntegral().subtract(integral.getNum()));
        integral.setOrderCode(dealIntegralRequest.getOrderCode());
        integral.setUserType(Constants.ONE);
        integralMapper.insert(integral);
        if(dealIntegralRequest.getDealType().equals(Constants.ZERO)){
        shopMapper.update(null,new UpdateWrapper<Shop>().lambda()
                    .eq(Shop::getId,shop.getId())
                    .set(Shop::getEditDate,new Date())
                    .set(Shop::getEditor,user!=null ? user.getId():null)
                    .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"total_integral = ifnull(total_integral,0)+" + dealIntegralRequest.getIntegralNum())//累计增加
                    .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"integral = ifnull(integral,0)+" +  dealIntegralRequest.getIntegralNum())
                    .setSql(dealIntegralRequest.getDealType().equals(Constants.ONE),"integral = ifnull(integral,0)-" + dealIntegralRequest.getIntegralNum()));
     /* if(dealIntegralRequest.getDealType().equals(Constants.ZERO)){
            shopMapper.addIntegral(shop.getId(),dealIntegralRequest.getIntegralNum(),
                    dealIntegralRequest.getIntegralObjType().getAddTitle()==Constants.ZERO?dealIntegralRequest.getIntegralNum():BigDecimal.ZERO);
        }else{
            shopMapper.subtractIntegral(shop.getId(),dealIntegralRequest.getIntegralNum());
        }
        }*/
        //站内信
        noticeService.saveMemberIntegralNotice(
@@ -258,12 +272,23 @@
        integral.setOrderCode(dealIntegralRequest.getOrderCode());
        integral.setUserType(Constants.TWO);
        integralMapper.insert(integral);
        if(dealIntegralRequest.getDealType().equals(Constants.ZERO)){
        LoginUserInfo user =(LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        shopMapper.update(null,new UpdateWrapper<Shop>().lambda()
                .eq(Shop::getId,shop.getId())
                .set(Shop::getEditDate,new Date())
                .set(Shop::getEditor,user!=null ? user.getId():null)
                .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"total_integral = ifnull(total_integral,0)+" + dealIntegralRequest.getIntegralNum())//累计增加
                .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"integral = ifnull(integral,0)+" +  dealIntegralRequest.getIntegralNum())
                .setSql(dealIntegralRequest.getDealType().equals(Constants.ONE),"integral = ifnull(integral,0)-" + dealIntegralRequest.getIntegralNum()));
      /*  if(dealIntegralRequest.getDealType().equals(Constants.ZERO)){
            shopMapper.addAmount(shop.getId(),dealIntegralRequest.getIntegralNum(),
                    dealIntegralRequest.getIntegralObjType().getAddTitle()==Constants.ZERO?dealIntegralRequest.getIntegralNum():BigDecimal.ZERO);
        }else{
            shopMapper.subtractAmount(shop.getId(),dealIntegralRequest.getIntegralNum());
        }
        }*/
        return integral.getId();
    }
@@ -511,9 +536,13 @@
        }
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        Date date = new Date();
        Integral integral = new Integral();
//        Date date = new Date();
//        Integral integral = new Integral();
        Constants.IntegralObjType integralObjType =null;
        DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
        dealIntegralRequest.setIntegralNum(param.getNum());
        dealIntegralRequest.setRemark(param.getRemark());
        dealIntegralRequest.setDealType(param.getType());
        if(Constants.equalsInteger(param.getUserType(), Constants.ZERO)){//用户账号
            MPJLambdaWrapper<Member> queryWrapper =new MPJLambdaWrapper<>();
            queryWrapper.selectAll(Member.class);
@@ -532,28 +561,11 @@
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"用户账户余额不足!");
            }
            integralObjType = param.getType()==0?Constants.IntegralObjType.SYSTEM_RECHARGE:Constants.IntegralObjType.SYSTEM_DEDUCT;
            DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
            dealIntegralRequest.setIntegralNum(num);
            dealIntegralRequest.setDealType(param.getType());
            dealIntegralRequest.setMemberId(model.getId());
            dealIntegralRequest.setObjId(null);
            dealIntegralRequest.setOrderCode(null);
            dealIntegralRequest.setRemark(param.getRemark());
            dealIntegralRequest.setIntegralObjType(integralObjType);
            this.dealIntegral(dealIntegralRequest);
            this.dealIntegral(dealIntegralRequest,model);
            //账户余额
//            memberMapper.update(null,new UpdateWrapper<Member>().lambda()
//                    .eq(Member::getId,model.getId())
//                    .set(Member::getEditDate,date)
//                    .set(Member::getEditor,user.getId())
//                    .setSql(param.getType() == 0,"total_integral = ifnull(total_integral,0)+" + num)//累计增加
//                    .setSql(param.getType() == 0,"integral = ifnull(integral,0)+" + param.getNum())
//                    .setSql(param.getType() == 1,"integral = ifnull(integral,0)-" + param.getNum()));
//
//            integralObjType = param.getType()==0?Constants.IntegralObjType.SYSTEM_RECHARGE:Constants.IntegralObjType.SYSTEM_DEDUCT;
//            integral.setTotalNum(param.getType() == 0? Constants.formatBigdecimal(model.getIntegral()).add(param.getNum()):Constants.formatBigdecimal(model.getIntegral()).subtract(param.getNum()));
//            integral.setUserType(Constants.ZERO);
        }else{//经销商账户
            Shop model = shopMapper.selectById(param.getMemberId());
            if(model == null ||Constants.equalsObject(model.getIsdeleted(),Constants.ONE)){
@@ -565,42 +577,15 @@
//                num = num.multiply(new BigDecimal(-1));//减少
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"经销商账户积分余额不足!");
            }
            //账户余额
//            shopMapper.update(null,new UpdateWrapper<Shop>().lambda()
//                    .eq(Shop::getId,model.getId())
//                    .set(Shop::getEditDate,date)
//                    .set(Shop::getEditor,user.getId())
//                    .setSql(param.getType() == 0,"total_integral = ifnull(total_integral,0)+" + num)//累计增加
//                    .setSql(param.getType() == 0,"integral = ifnull(integral,0)+" + param.getNum())
//                    .setSql(param.getType() == 1,"integral = ifnull(integral,0)-" + param.getNum()));
//            integralObjType = param.getType()==0?Constants.IntegralObjType.SHOP_SYSTEM_RECHARGE:Constants.IntegralObjType.SHOP_SYSTEM_DEDUCT;
//            integral.setTotalNum(param.getType() == 0? Constants.formatBigdecimal(model.getIntegral()).add(param.getNum()):Constants.formatBigdecimal(model.getIntegral()).subtract(param.getNum()));
//            integral.setUserType(Constants.ONE);
            DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
            dealIntegralRequest.setIntegralNum(num);
            dealIntegralRequest.setDealType(param.getType());
            integralObjType = param.getType()==0?Constants.IntegralObjType.SHOP_SYSTEM_RECHARGE:Constants.IntegralObjType.SHOP_SYSTEM_DEDUCT;
            dealIntegralRequest.setMemberId(model.getId());
            dealIntegralRequest.setObjId(null);
            dealIntegralRequest.setOrderCode(null);
            dealIntegralRequest.setIntegralObjType(integralObjType);
            this.dealShopIntegral(dealIntegralRequest);
            this.dealShopIntegral(dealIntegralRequest,model);
        }
//        integral.setCreateDate(new Date());
//        integral.setCreator(user.getId());
//        integral.setIsdeleted(Constants.ZERO);
//        integral.setNum(param.getNum());
//        integral.setTitle(integralObjType.getName());
//        integral.setContent(integralObjType.getNoteinfo().replace("${param}",integral.getNum().toString()));
//        integral.setMemberId(param.getMemberId());
//        integral.setObjId(param.getMemberId());
//        integral.setObjType(integralObjType.getKey());
//        integral.setType(param.getType());
//        integral.setRemark(param.getRemark());
//        integral.setOrderCode(null);
//        integralMapper.insert(integral);
    }
    @Override
    public IntegralDataResponse getIntegralData(IntegralRecordDTO model){