From f3d6bbef63a808009e76b744d8ca5effe8a6eb0c Mon Sep 17 00:00:00 2001 From: xm <1350250847@qq.com> Date: Wed, 13 May 2026 09:55:49 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E5=88=86=E9=94=80=E5=91=98?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E4=B8=80=E7=BA=A7=E3=80=81=E4=BA=8C=E7=BA=A7?= =?UTF-8?q?=E5=88=86=E9=94=80=E4=BD=A3=E9=87=91=E4=B8=9A=E5=8A=A1=202.?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=80=81=E6=B0=B4=E8=AE=A2=E5=8D=95=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=94=A8=E6=88=B7=E6=94=B6=E8=B4=A7=E5=9C=B0=E5=9D=80?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=203.=E4=BC=98=E5=8C=96=E6=94=B6=E7=9B=8A?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E8=AE=A2=E5=8D=95=E5=8F=B7=E3=80=81=E7=94=A8?= =?UTF-8?q?=E6=88=B7ID=E6=9F=A5=E8=AF=A2=E4=B8=9A=E5=8A=A1=204.=E6=8F=90?= =?UTF-8?q?=E7=8E=B0=E4=B8=9A=E5=8A=A1=E5=A2=9E=E5=8A=A0=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=8F=B7=EF=BC=8C=E9=81=BF=E5=85=8D=E4=BD=BF=E7=94=A8=E8=AE=A2?= =?UTF-8?q?=E5=8D=95ID=E4=BC=A0=E5=85=A5=E4=BC=9A=E4=B8=8E=E7=94=9F?= =?UTF-8?q?=E4=BA=A7ID=E9=87=8D=E5=A4=8D=EF=BC=8C=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E9=83=BD=E6=98=AF=E5=B7=B2=E4=BD=BF=E7=94=A8=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/GltTicketOrderController.java | 6 ++--- .../task/DealerOrderSettlement10584Task.java | 26 +++++++++++------- .../ShopDealerCapitalController.java | 16 +++++------ .../ShopDealerWithdrawController.java | 5 ++++ .../shop/entity/ShopDealerWithdraw.java | 3 +++ .../shop/mapper/ShopDealerRefereeMapper.java | 3 ++- .../mapper/xml/ShopDealerCapitalMapper.xml | 1 - .../mapper/xml/ShopDealerRefereeMapper.xml | 11 +++++--- ...opDealerCommissionRollbackServiceImpl.java | 2 +- .../shop/vo/ShopDealerRefereeVO.java | 27 +++++++++++++++++++ 10 files changed, 73 insertions(+), 27 deletions(-) create mode 100644 src/main/java/com/gxwebsoft/shop/vo/ShopDealerRefereeVO.java diff --git a/src/main/java/com/gxwebsoft/glt/controller/GltTicketOrderController.java b/src/main/java/com/gxwebsoft/glt/controller/GltTicketOrderController.java index 09ab3e8..f928a07 100644 --- a/src/main/java/com/gxwebsoft/glt/controller/GltTicketOrderController.java +++ b/src/main/java/com/gxwebsoft/glt/controller/GltTicketOrderController.java @@ -329,16 +329,14 @@ public class GltTicketOrderController extends BaseController { if (addr == null) { return null; } - if (StrUtil.isNotBlank(addr.getFullAddress())) { - return addr.getFullAddress(); - } // 兼容旧数据:fullAddress 为空时,拼接省市区 + 详细地址 return StrUtil.blankToDefault( StrUtil.join("", StrUtil.nullToEmpty(addr.getProvince()), StrUtil.nullToEmpty(addr.getCity()), StrUtil.nullToEmpty(addr.getRegion()), - StrUtil.nullToEmpty(addr.getAddress()) + StrUtil.nullToEmpty(addr.getAddress()), + StrUtil.nullToEmpty(addr.getFullAddress()) ), addr.getAddress() ); diff --git a/src/main/java/com/gxwebsoft/glt/task/DealerOrderSettlement10584Task.java b/src/main/java/com/gxwebsoft/glt/task/DealerOrderSettlement10584Task.java index 6f64719..d60c107 100644 --- a/src/main/java/com/gxwebsoft/glt/task/DealerOrderSettlement10584Task.java +++ b/src/main/java/com/gxwebsoft/glt/task/DealerOrderSettlement10584Task.java @@ -16,6 +16,7 @@ import com.gxwebsoft.shop.mapper.ShopDealerRefereeMapper; import com.gxwebsoft.shop.mapper.ShopOrderMapper; import com.gxwebsoft.shop.service.*; import com.gxwebsoft.shop.util.UpstreamUserFinder; +import com.gxwebsoft.shop.vo.ShopDealerRefereeVO; import com.gxwebsoft.shop.vo.ShopOrderGoodsVO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -484,16 +485,23 @@ public class DealerOrderSettlement10584Task { AtomicReference simpleMoney = new AtomicReference<>(BigDecimal.ZERO); - if (dealerLevel >= 1) { - Integer dealerId = shopDealerRefereeMapper.getDealerIdByUserId(order.getUserId()); - if(dealerId != null){ - directDealerId = dealerId; + ShopDealerRefereeVO dealerRefereeVO = shopDealerRefereeMapper.getDealerIdByUserId(order.getUserId()); + if (dealerLevel == 1) { + Integer directUserId = dealerRefereeVO.getDirectUserId(); + Integer directUserType = dealerRefereeVO.getDirectUserType(); + if(directUserId != null && directUserType != null && directUserType == 0){ + directDealerId = dealerRefereeVO.getDirectUserId(); } - } - if (dealerLevel >= 2 && directDealerId != null) { - Integer dealerId = shopDealerRefereeMapper.getDealerIdByUserId(directDealerId); - if(dealerId != null){ - simpleDealerId = dealerId; + }else { + Integer directUserId = dealerRefereeVO.getDirectUserId(); + Integer directUserType = dealerRefereeVO.getDirectUserType(); + Integer simpleUserId = dealerRefereeVO.getSimpleUserId(); + Integer simpleUserType = dealerRefereeVO.getSimpleUserType(); + if(directUserId != null && directUserType != null && directUserType == 0){ + directDealerId = directUserId; + } + if(simpleUserId != null && simpleUserType != null && simpleUserType == 0){ + simpleDealerId = simpleUserId; } } diff --git a/src/main/java/com/gxwebsoft/shop/controller/ShopDealerCapitalController.java b/src/main/java/com/gxwebsoft/shop/controller/ShopDealerCapitalController.java index d7ccaf1..c23cfd9 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/ShopDealerCapitalController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/ShopDealerCapitalController.java @@ -1,17 +1,17 @@ package com.gxwebsoft.shop.controller; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.core.web.ApiResult; import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.shop.service.ShopDealerCapitalService; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.system.entity.User; import com.gxwebsoft.shop.entity.ShopDealerCapital; import com.gxwebsoft.shop.param.ShopDealerCapitalParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.shop.service.ShopDealerCapitalService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import org.springdoc.api.annotations.ParameterObject; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -34,7 +34,7 @@ public class ShopDealerCapitalController extends BaseController { @PreAuthorize("hasAuthority('shop:shopDealerCapital:list')") @Operation(summary = "分页查询分销商资金明细表") @GetMapping("/page") - public ApiResult> page(ShopDealerCapitalParam param) { + public ApiResult> page(@ParameterObject ShopDealerCapitalParam param) { // 使用关联查询 return success(shopDealerCapitalService.pageRel(param)); } diff --git a/src/main/java/com/gxwebsoft/shop/controller/ShopDealerWithdrawController.java b/src/main/java/com/gxwebsoft/shop/controller/ShopDealerWithdrawController.java index b13ef3a..57fb70d 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/ShopDealerWithdrawController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/ShopDealerWithdrawController.java @@ -2,6 +2,7 @@ package com.gxwebsoft.shop.controller; import cn.hutool.core.util.StrUtil; import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.redis.OrderNoUtils; import com.gxwebsoft.shop.entity.ShopDealerUser; import com.gxwebsoft.shop.service.ShopDealerUserService; import com.gxwebsoft.shop.service.ShopDealerWithdrawService; @@ -43,6 +44,8 @@ public class ShopDealerWithdrawController extends BaseController { private ShopDealerUserService shopDealerUserService; @Resource private WxTransferService wxTransferService; + @Resource + private OrderNoUtils orderNoUtils; @PreAuthorize("hasAuthority('shop:shopDealerWithdraw:list')") @Operation(summary = "分页查询分销商提现明细表") @@ -89,6 +92,8 @@ public class ShopDealerWithdrawController extends BaseController { return fail("tenantId为空,无法发起提现"); } + String orderNo = orderNoUtils.generate("WD"); + shopDealerWithdraw.setOrderNo(orderNo); shopDealerWithdraw.setTenantId(tenantId); shopDealerWithdraw.setUserId(loginUser.getUserId()); diff --git a/src/main/java/com/gxwebsoft/shop/entity/ShopDealerWithdraw.java b/src/main/java/com/gxwebsoft/shop/entity/ShopDealerWithdraw.java index 6289926..752db70 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/ShopDealerWithdraw.java +++ b/src/main/java/com/gxwebsoft/shop/entity/ShopDealerWithdraw.java @@ -27,6 +27,9 @@ public class ShopDealerWithdraw implements Serializable { @TableId(value = "id", type = IdType.AUTO) private Integer id; + @Schema(description = "订单号") + private String orderNo; + @Schema(description = "分销商用户ID") private Integer userId; diff --git a/src/main/java/com/gxwebsoft/shop/mapper/ShopDealerRefereeMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/ShopDealerRefereeMapper.java index 7c9c491..0fffecd 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/ShopDealerRefereeMapper.java +++ b/src/main/java/com/gxwebsoft/shop/mapper/ShopDealerRefereeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.gxwebsoft.shop.entity.ShopDealerReferee; import com.gxwebsoft.shop.param.ShopDealerRefereeParam; +import com.gxwebsoft.shop.vo.ShopDealerRefereeVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -39,6 +40,6 @@ public interface ShopDealerRefereeMapper extends BaseMapper { * @param userId 用户ID * @return */ - Integer getDealerIdByUserId(@Param("userId") Integer userId); + ShopDealerRefereeVO getDealerIdByUserId(@Param("userId") Integer userId); } diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerCapitalMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerCapitalMapper.xml index d1fa10e..f94b40f 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerCapitalMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerCapitalMapper.xml @@ -40,7 +40,6 @@ AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') - OR a.user_id = #{param.keywords} OR a.order_no = #{param.keywords} ) diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerRefereeMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerRefereeMapper.xml index ac748e2..72960dd 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerRefereeMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerRefereeMapper.xml @@ -57,15 +57,20 @@ - SELECT - a.dealer_id + b.user_id directUserId, + b.type directUserType, + d.user_id simpleUserId, + d.type simpleUserType FROM shop_dealer_referee a LEFT JOIN shop_dealer_user b ON a.dealer_id = b.user_id + LEFT JOIN shop_dealer_referee c ON b.user_id = c.user_id + LEFT JOIN shop_dealer_user d ON d.user_id = c.dealer_id WHERE b.is_delete = 0 - AND b.type = 0 + and d.is_delete = 0 AND a.user_id = #{userId} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerCommissionRollbackServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerCommissionRollbackServiceImpl.java index d43001a..232854d 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerCommissionRollbackServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerCommissionRollbackServiceImpl.java @@ -166,7 +166,7 @@ public class ShopDealerCommissionRollbackServiceImpl implements ShopDealerCommis if (refundAmount.compareTo(orderBaseAmount) >= 0) { return BigDecimal.ONE; } - return refundAmount.divide(orderBaseAmount, 10, RoundingMode.HALF_UP); + return refundAmount.divide(orderBaseAmount, 3, RoundingMode.HALF_UP); } private void markDealerOrderInvalid(Integer tenantId, String orderNo) { diff --git a/src/main/java/com/gxwebsoft/shop/vo/ShopDealerRefereeVO.java b/src/main/java/com/gxwebsoft/shop/vo/ShopDealerRefereeVO.java new file mode 100644 index 0000000..cead2ea --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/vo/ShopDealerRefereeVO.java @@ -0,0 +1,27 @@ +package com.gxwebsoft.shop.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * + * @author xm + * @since 2026-05-13 + */ +@Data +@Schema(description = "两级推荐人数据") +public class ShopDealerRefereeVO { + + @Schema(description = "一级推荐人") + private Integer directUserId; + + @Schema(description = "一级推荐人类型 0-分销商 1-门店/服务商 2-集团分红") + private Integer directUserType; + + @Schema(description = "二级推荐人") + private Integer simpleUserId; + + @Schema(description = "二级推荐人类型 0-分销商 1-门店/服务商 2-集团分红") + private Integer simpleUserType; + +}