From 8027634ef66360e745df4f496d4bc4cf227d59c7 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Fri, 23 May 2025 13:28:34 +0800 Subject: [PATCH] feat(mall): 新增自提点功能 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java | 138 +++++++++++++++++++++++++++++++++++++-------- 1 files changed, 113 insertions(+), 25 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java index 7a25f8e..d90680a 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java @@ -26,6 +26,7 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -71,6 +72,7 @@ public FebsResponse applyLeader(ApiApplayLeaderDto apiApplayLeaderDto) { MallMember member = LoginUserUtil.getLoginUser(); Long memberId = member.getId(); + MallTeamLeader mallTeamLeaderAdd = new MallTeamLeader(); List<MallTeamLeader> mallTeamLeaders = this.baseMapper.selectListByMemberIdAndState(memberId, MallTeamLeader.STATE_ING); if(CollUtil.isNotEmpty(mallTeamLeaders)){ return new FebsResponse().fail().message("正在申请中"); @@ -79,14 +81,33 @@ if(CollUtil.isNotEmpty(mallTeamLeaderCancel)){ return new FebsResponse().fail().message("当前用户无法申请"); } - MallTeamLeader mallTeamLeader = MallTeamLeaderConversion.INSTANCE.dtoToEntity(apiApplayLeaderDto); - mallTeamLeader.setMemberId(memberId); - mallTeamLeader.setState(MallTeamLeader.STATE_ING); - mallTeamLeader.setUniqueCode(member.getInviteId()); - //申请团长默认关闭返利,返利比例为0 - mallTeamLeader.setProfitSwitch(2); - mallTeamLeader.setBonusPercent("0"); - this.baseMapper.insert(mallTeamLeader); + List<MallTeamLeader> mallTeamLeaderNo = this.baseMapper.selectListByMemberIdAndState(memberId, MallTeamLeader.STATE_NO); + if(CollUtil.isNotEmpty(mallTeamLeaderNo)){ + mallTeamLeaderAdd = mallTeamLeaderNo.get(0); + if(ObjectUtil.isNotEmpty(mallTeamLeaderAdd)){ + mallTeamLeaderAdd.setName(apiApplayLeaderDto.getName()); + mallTeamLeaderAdd.setPhone(apiApplayLeaderDto.getPhone()); + mallTeamLeaderAdd.setAddressPic(apiApplayLeaderDto.getAddressPic()); + mallTeamLeaderAdd.setAddressArea(apiApplayLeaderDto.getAddressArea()); + mallTeamLeaderAdd.setDetailAddress(apiApplayLeaderDto.getDetailAddress()); + mallTeamLeaderAdd.setLongitude(apiApplayLeaderDto.getLongitude()); + mallTeamLeaderAdd.setLatitude(apiApplayLeaderDto.getLatitude()); + mallTeamLeaderAdd.setState(MallTeamLeader.STATE_ING); + //申请团长默认关闭返利,返利比例为0 + mallTeamLeaderAdd.setProfitSwitch(2); + mallTeamLeaderAdd.setBonusPercent("0"); + this.baseMapper.updateById(mallTeamLeaderAdd); + } + }else{ + MallTeamLeader mallTeamLeader = MallTeamLeaderConversion.INSTANCE.dtoToEntity(apiApplayLeaderDto); + mallTeamLeader.setMemberId(memberId); + mallTeamLeader.setState(MallTeamLeader.STATE_ING); + mallTeamLeader.setUniqueCode(member.getInviteId()); + //申请团长默认关闭返利,返利比例为0 + mallTeamLeader.setProfitSwitch(2); + mallTeamLeader.setBonusPercent("0"); + this.baseMapper.insert(mallTeamLeader); + } return new FebsResponse().success().message("申请成功"); } @@ -232,7 +253,7 @@ orderStateDto.setGoodsName(StrUtil.sub(productNames,0,20)+"..."); String takeUniqueCode = mallOrderInfo.getTakeUniqueCode(); MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode); - orderStateDto.setAddressArea(StrUtil.sub(mallTeamLeader.getAddressArea(),0,20)+"..."); + orderStateDto.setAddressArea(mallTeamLeader.getAddressArea()); orderStateDto.setDetailAddress(StrUtil.sub(mallTeamLeader.getDetailAddress(),0,20)+"..."); orderStateDto.setLeaderPhone(mallTeamLeader.getPhone()); orderStateDto.setOpenId(mallMemberMapper.selectById(mallOrderInfo.getMemberId()).getOpenId()); @@ -290,11 +311,9 @@ ApiLeaderInfoVo apiLeaderInfoVo = new ApiLeaderInfoVo(); MallTeamLeader mallTeamLeader = new MallTeamLeader(); MallMember member = LoginUserUtil.getLoginUser(); - if(ObjectUtil.isNotEmpty(member)){ - MallLeaderDefault mallLeaderDefault = mallLeaderDefaultMapper.selectByMemberId(member.getId()); - if(ObjectUtil.isNotEmpty(mallLeaderDefault)){ - mallTeamLeader = this.baseMapper.selectLeaderByUniqueCode(mallLeaderDefault.getUniqueCode()); - } + MallLeaderDefault mallLeaderDefault = mallLeaderDefaultMapper.selectByMemberId(member.getId()); + if(ObjectUtil.isNotEmpty(mallLeaderDefault)){ + mallTeamLeader = this.baseMapper.selectLeaderByUniqueCode(mallLeaderDefault.getUniqueCode()); }else{ //特征码扫码 if(StrUtil.isNotEmpty(uniqueCode)){ @@ -371,6 +390,10 @@ MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId); MallOrderItem mallOrderItem = mallOrderItemMapper.selectById(itemId); + MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(mallOrderItem.getSkuId()); + if(ObjectUtil.isEmpty(mallGoodsSku)){ + return new FebsResponse().fail().message("退款失败,请联系客服人员"); + } List<MallRefundEntity> mallRefundEntities = mallRefundMapper.selectByItemIdAndOrderIdAndState(itemId, orderId, 3); if(CollUtil.isEmpty(mallRefundEntities)){ return new FebsResponse().fail().message("退款失败,请联系客服人员"); @@ -398,11 +421,13 @@ //退款退款金额 BigDecimal refundAmount = mallRefundEntity.getAmount(); +// refundAmount = refundAmount.add(mallOrderInfo.getCarriage()); BigDecimal bb = new BigDecimal(100); int refundMoney = refundAmount.multiply(bb).intValue(); //余额支付退款 if(mallRefundEntity.getType() == 3){ + log.info("余额支付退款"); //更新订单详情 mallOrderItem.setState(3); mallOrderItemMapper.updateById(mallOrderItem); @@ -411,8 +436,6 @@ mallGoods.setStock(mallGoods.getStock() + mallOrderItem.getCnt()); mallGoods.setVolume(mallGoods.getVolume() - mallOrderItem.getCnt()); mallGoodsMapper.updateById(mallGoods); - - MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(mallOrderItem.getSkuId()); mallGoodsSku.setStock(mallGoodsSku.getStock() + mallOrderItem.getCnt()); mallGoodsSku.setSkuVolume(mallGoodsSku.getSkuVolume() - mallOrderItem.getCnt()); mallGoodsSkuMapper.updateById(mallGoodsSku); @@ -420,7 +443,6 @@ mallRefundEntity.setState(1); mallRefundEntity.setUpdatedTime(DateUtil.date()); mallRefundMapper.updateById(mallRefundEntity); - mallMoneyFlowService.addMoneyFlow(mallOrderInfo.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByNotInStateAndOrderId(3,orderId); if(CollUtil.isEmpty(mallOrderItemList)){ @@ -428,19 +450,38 @@ mallOrderRefund.setStatus(6); mallOrderInfoMapper.updateById(mallOrderRefund); } - memberWalletService.add(refundAmount, mallOrderInfo.getMemberId(), "balance"); + if(refundAmount.compareTo(BigDecimal.ZERO) > 0){ + memberWalletService.add(refundAmount, mallOrderInfo.getMemberId(), "balance"); + mallMoneyFlowService.addMoneyFlow( + mallOrderInfo.getMemberId(), + refundAmount, + ScoreFlowTypeEnum.REFUND.getValue(), + mallOrderInfo.getOrderNo(), + FlowTypeEnum.BALANCE.getValue(), + StrUtil.format(ScoreFlowTypeEnum.REFUND.getDesc(),refundAmount), + 2 + ); + } return new FebsResponse().success().message("退款成功"); } Boolean flag = false; Boolean debug = xcxProperties.getDebug(); if (debug) { - boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, 1, 1, null); - flag = b; + if(refundAmount.compareTo(BigDecimal.ZERO) > 0){ + boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, 1, 1, null); + flag = b; + }else{ + flag = true; + } } else { - log.info("开始调用退款接口。。。退款编号为{}", refundNo); - boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, orderMoney, refundMoney, null); - flag = b; + if(refundAmount.compareTo(BigDecimal.ZERO) > 0){ + log.info("开始调用退款接口。。。退款编号为{}", refundNo); + boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, orderMoney, refundMoney, null); + flag = b; + }else{ + flag = true; + } } if(flag){ @@ -453,7 +494,7 @@ mallGoods.setVolume(mallGoods.getVolume() - mallOrderItem.getCnt()); mallGoodsMapper.updateById(mallGoods); - MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(mallOrderItem.getSkuId()); +// MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(mallOrderItem.getSkuId()); mallGoodsSku.setStock(mallGoodsSku.getStock() + mallOrderItem.getCnt()); mallGoodsSku.setSkuVolume(mallGoodsSku.getSkuVolume() - mallOrderItem.getCnt()); mallGoodsSkuMapper.updateById(mallGoodsSku); @@ -462,7 +503,17 @@ mallRefundEntity.setState(1); mallRefundEntity.setUpdatedTime(DateUtil.date()); mallRefundMapper.updateById(mallRefundEntity); - mallMoneyFlowService.addMoneyFlow(mallOrderInfo.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); + if(refundAmount.compareTo(BigDecimal.ZERO) > 0){ + mallMoneyFlowService.addMoneyFlow( + mallOrderInfo.getMemberId(), + refundAmount, + ScoreFlowTypeEnum.WECHAT_REFUND.getValue(), + mallOrderInfo.getOrderNo(), + FlowTypeEnum.BALANCE.getValue(), + StrUtil.format(ScoreFlowTypeEnum.WECHAT_REFUND.getDesc(),refundAmount), + 2 + ); + } List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByNotInStateAndOrderId(3,orderId); if(CollUtil.isEmpty(mallOrderItemList)){ @@ -608,4 +659,41 @@ return new FebsResponse().success().data(apiLeaderInfoVo); } + @Override + public FebsResponse happyLeaderList() { + ArrayList<ApiHappyLeaderInfoVo> apiHappyLeaderInfoVos = new ArrayList<>(); + + List<MallTeamLeader> mallTeamLeaders = this.baseMapper.selectList( + new LambdaQueryWrapper<MallTeamLeader>() + .select( + MallTeamLeader::getId, + MallTeamLeader::getName, + MallTeamLeader::getPhone, + MallTeamLeader::getUniqueCode, + MallTeamLeader::getAddressPic, + MallTeamLeader::getAddressArea, + MallTeamLeader::getDetailAddress, + MallTeamLeader::getLongitude, + MallTeamLeader::getLatitude) + .eq(MallTeamLeader::getState, 1) + ); + if(CollUtil.isNotEmpty(mallTeamLeaders)){ + for (MallTeamLeader mallTeamLeader : mallTeamLeaders){ + ApiHappyLeaderInfoVo apiHappyLeaderInfoVo = new ApiHappyLeaderInfoVo(); + apiHappyLeaderInfoVo.setId(mallTeamLeader.getId()); + apiHappyLeaderInfoVo.setName(mallTeamLeader.getName()); + apiHappyLeaderInfoVo.setPhone(mallTeamLeader.getPhone()); + apiHappyLeaderInfoVo.setTakeUniqueCode(mallTeamLeader.getUniqueCode()); + apiHappyLeaderInfoVo.setAddressPic(mallTeamLeader.getAddressPic()); + apiHappyLeaderInfoVo.setAddressArea(mallTeamLeader.getAddressArea()); + apiHappyLeaderInfoVo.setDetailAddress(mallTeamLeader.getDetailAddress()); + apiHappyLeaderInfoVo.setLongitude(mallTeamLeader.getLongitude()); + apiHappyLeaderInfoVo.setLatitude(mallTeamLeader.getLatitude()); + apiHappyLeaderInfoVos.add(apiHappyLeaderInfoVo); + } + } + + return new FebsResponse().success().data(apiHappyLeaderInfoVos); + } + } -- Gitblit v1.9.1