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 | 128 ++++++++++++++++++++++++++++++++++++------
1 files changed, 109 insertions(+), 19 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 72a713e..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("申请成功");
}
@@ -369,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("退款失败,请联系客服人员");
@@ -396,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);
@@ -409,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);
@@ -418,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)){
@@ -426,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){
@@ -451,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);
@@ -460,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)){
@@ -606,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