diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/brokerage/BrokerageApi.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/brokerage/BrokerageApi.java new file mode 100644 index 000000000..4952e5cad --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/brokerage/BrokerageApi.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.trade.api.brokerage; + +import cn.iocoder.yudao.module.trade.api.brokerage.dto.BrokerageUserDTO; +import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageBindModeEnum; + +/** + * 分销 API 接口 + * + * @author owen + */ +public interface BrokerageApi { + + /** + * 获得分销用户 + * + * @param userId 用户编号 + * @return 分销用户信息 + */ + BrokerageUserDTO getBrokerageUser(Long userId); + + /** + * 绑定推广员 + * + * @param userId 用户编号 + * @param bindUserId 推广员编号 + * @param bindMode 绑定模式 {@link BrokerageBindModeEnum} + * @return 是否绑定 + */ + boolean bindUser(Long userId, Long bindUserId, Integer bindMode); +} diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/brokerage/dto/BrokerageUserDTO.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/brokerage/dto/BrokerageUserDTO.java new file mode 100644 index 000000000..864abe148 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/brokerage/dto/BrokerageUserDTO.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.module.trade.api.brokerage.dto; + +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 分销用户 DTO + * + * @author owen + */ +@Data +public class BrokerageUserDTO { + + /** + * 用户编号 + *
+ * 对应 MemberUserDO 的 id 字段 + */ + private Long id; + + /** + * 推广员编号 + *
+ * 关联 MemberUserDO 的 id 字段
+ */
+ private Long bindUserId;
+ /**
+ * 推广员绑定时间
+ */
+ private LocalDateTime bindUserTime;
+
+ /**
+ * 推广资格
+ */
+ private Boolean brokerageEnabled;
+ /**
+ * 成为分销员时间
+ */
+ private LocalDateTime brokerageTime;
+
+ /**
+ * 可用佣金
+ */
+ private Integer price;
+ /**
+ * 冻结佣金
+ */
+ private Integer frozenPrice;
+
+}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/api/brokerage/BrokerageApiImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/api/brokerage/BrokerageApiImpl.java
new file mode 100644
index 000000000..1bb520734
--- /dev/null
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/api/brokerage/BrokerageApiImpl.java
@@ -0,0 +1,33 @@
+package cn.iocoder.yudao.module.trade.api.brokerage;
+
+import cn.iocoder.yudao.module.trade.api.brokerage.dto.BrokerageUserDTO;
+import cn.iocoder.yudao.module.trade.convert.brokerage.user.BrokerageUserConvert;
+import cn.iocoder.yudao.module.trade.service.brokerage.user.BrokerageUserService;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+
+/**
+ * 分销 API 接口实现类
+ *
+ * @author owen
+ */
+@Service
+@Validated
+public class BrokerageApiImpl implements BrokerageApi {
+
+ @Resource
+ private BrokerageUserService brokerageUserService;
+
+ public BrokerageUserDTO getBrokerageUser(Long userId) {
+ return BrokerageUserConvert.INSTANCE.convertDTO(brokerageUserService.getBrokerageUser(userId));
+ }
+
+ @Override
+ public boolean bindUser(Long userId, Long bindUserId, Integer bindMode) {
+ // todo 待实现
+ return false;
+ }
+
+}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/brokerage/user/BrokerageUserConvert.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/brokerage/user/BrokerageUserConvert.java
index c4a31cc98..01d0be8c8 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/brokerage/user/BrokerageUserConvert.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/brokerage/user/BrokerageUserConvert.java
@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.trade.convert.brokerage.user;
import cn.hutool.core.map.MapUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
+import cn.iocoder.yudao.module.trade.api.brokerage.dto.BrokerageUserDTO;
import cn.iocoder.yudao.module.trade.controller.admin.brokerage.user.vo.BrokerageUserRespVO;
import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.user.BrokerageUserDO;
import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserBrokerageSummaryBO;
@@ -58,4 +59,6 @@ public interface BrokerageUserConvert {
}
return result;
}
+
+ BrokerageUserDTO convertDTO(BrokerageUserDO brokerageUser);
}
diff --git a/yudao-module-member/yudao-module-member-biz/pom.xml b/yudao-module-member/yudao-module-member-biz/pom.xml
index a5eda05b0..1df7e7be8 100644
--- a/yudao-module-member/yudao-module-member-biz/pom.xml
+++ b/yudao-module-member/yudao-module-member-biz/pom.xml
@@ -33,6 +33,11 @@