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; + +}