From 608eb7c54095846d38e7f4e773f5f8eb21016ef6 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sun, 26 Sep 2021 17:39:20 +0800
Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/xc-mall
---
src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java | 2
src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java | 9 +
src/main/java/cc/mrbird/febs/mall/entity/AgentInfo.java | 4
src/test/java/cc/mrbird/febs/AgentTest.java | 52 ++++++++
src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java | 6 +
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 2
src/main/resources/mapper/modules/MallMemberMapper.xml | 19 +++
src/main/resources/mapper/modules/MallOrderInfoMapper.xml | 14 ++
sql/xc_mall.sql | 2
src/main/java/cc/mrbird/febs/mall/vo/MallGoodsCategoryVo.java | 3
src/main/java/cc/mrbird/febs/mall/service/IAgentService.java | 4
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 8 +
src/main/java/cc/mrbird/febs/mall/entity/MallGoodsCategory.java | 2
src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java | 9 +
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 95 +++++++++++++++
src/main/java/cc/mrbird/febs/common/utils/AppContants.java | 3
src/main/java/cc/mrbird/febs/mall/mapper/DataDictionaryCustomMapper.java | 4
src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java | 1
src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java | 11 +
src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml | 14 ++
src/main/java/cc/mrbird/febs/common/enumerates/AgentLevelEnum.java | 26 ++++
src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java | 20 +++
22 files changed, 303 insertions(+), 7 deletions(-)
diff --git a/sql/xc_mall.sql b/sql/xc_mall.sql
index e0215ce..8589160 100644
--- a/sql/xc_mall.sql
+++ b/sql/xc_mall.sql
@@ -338,3 +338,5 @@
bank VARCHAR(255) COMMENT '开户行' ,
PRIMARY KEY (ID)
) COMMENT = '用户收款方式';
+alter table mall_goods_category add image varchar(500) null comment '分类图片';
+
diff --git a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
index cdca235..b44e323 100644
--- a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
+++ b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
@@ -81,5 +81,14 @@
return BindingBuilder.bind(orderDelayQueueTtl()).to(delayTtlExchange()).with(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getRoute());
}
+ @Bean
+ public Queue autoLevelUpAgentQueue() {
+ return new Queue(QueueConstants.AGENT_AUTO_LEVEL_UP);
+ }
+
+ @Bean
+ public Binding autoLevelUpBind() {
+ return BindingBuilder.bind(autoLevelUpAgentQueue()).to(defaultExchange()).with(RouteKeyConstants.ROUTE_KEY_DEFAULT);
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/AgentLevelEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/AgentLevelEnum.java
new file mode 100644
index 0000000..64ace66
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/AgentLevelEnum.java
@@ -0,0 +1,26 @@
+package cc.mrbird.febs.common.enumerates;
+
+import lombok.Getter;
+
+/**
+ * @author wzy
+ * @date 2021-09-26
+ **/
+@Getter
+public enum AgentLevelEnum {
+
+ FIRST_LEVEL("普通会员"),
+ SECOND_LEVEL("业务经理"),
+ THIRD_LEVEL("区域代理"),
+ FOUR_LEVEL("代理"),
+ FIFTH_LEVEL("总代"),
+ SIX_LEVEL("董事"),
+ SEVEN_LEVEL("股东");
+
+
+ private String name;
+
+ AgentLevelEnum(String name) {
+ this.name = name;
+ }
+}
diff --git a/src/main/java/cc/mrbird/febs/common/utils/AppContants.java b/src/main/java/cc/mrbird/febs/common/utils/AppContants.java
index c2b96b7..79d69c3 100644
--- a/src/main/java/cc/mrbird/febs/common/utils/AppContants.java
+++ b/src/main/java/cc/mrbird/febs/common/utils/AppContants.java
@@ -65,4 +65,7 @@
public static final String REDIS_ORDER_OVERTIME_PREFIX = "order_overtime_";
public static final String REDIS_ORDER_OVERTIME = "order_overtime_{}_{}";
+ public static final String AGENT_LEVEL = "AGENT_LEVEL";
+ public static final String AGENT_LEVEL_REQUIRE = "AGENT_LEVEL_REQUIRE";
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/AgentInfo.java b/src/main/java/cc/mrbird/febs/mall/entity/AgentInfo.java
index 86b661e..2b6aeb0 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/AgentInfo.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/AgentInfo.java
@@ -15,6 +15,8 @@
* 下单数量要求 1-直推 2-团队
*/
private Integer orderType;
+ public static final Integer ORDER_TYPE_DIRECT = 1;
+ public static final Integer ORDER_TYPE_TEAM = 2;
/**
* 下单数量
@@ -39,6 +41,6 @@
/**
* 团队收益 1-指定金额 2-比例
*/
- private BigDecimal teamIncomeType;
+ private Integer teamIncomeType;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsCategory.java b/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsCategory.java
index 4a058db..342b979 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsCategory.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsCategory.java
@@ -20,4 +20,6 @@
private Integer isRecommend;
+ private String image;
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/DataDictionaryCustomMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/DataDictionaryCustomMapper.java
index 602eb3a..34651d1 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/DataDictionaryCustomMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/DataDictionaryCustomMapper.java
@@ -18,4 +18,8 @@
IPage<AdminPayMethodVo> getPayMethodListInPage(Page<AdminPayMethodVo> page, @Param("record")PayMethodDto payMethodDto);
AdminMallPayMethodEditVo getMallPayMethodEditInfoById(@Param("id")long id);
+
+ DataDictionaryCustom selectNextAgentLevelInfo(@Param("level") String agentLevel);
+
+ DataDictionaryCustom selectDicDataByTypeAndCode(@Param("type") String type, @Param("code") String code);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
index ad0f53a..4650b3b 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
@@ -34,4 +34,10 @@
Integer selectOwnCntByInviteId(@Param("inviteId") String inviteId);
Integer selectOwnOrderCntByInviteId(@Param("inviteId") String inviteId);
+
+ List<MallMember> selectByRefererId(@Param("inviteId") String inviteId);
+
+ List<MallMember> selectChildAgentList(@Param("inviteId") String inviteId, @Param("agentLevel") String agentLevel);
+
+ List<MallMember> selectByInviteIds(@Param("list") List<String> inviteIds);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
index e7f2769..ed0386e 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
@@ -38,4 +38,6 @@
List<MallOrderItem> getMallOrderItemByOrderId(@Param("id")long id);
List<MallOrderInfo> selectOrderInfoByStatus(@Param("status") Integer status);
+
+ Integer selectCntDirectOrTeam(@Param("type") Integer type, @Param("inviteId") String inviteId);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java b/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java
index 10c5976..de87f80 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java
@@ -2,7 +2,7 @@
public interface IAgentService {
- void autoUpAgentLevel();
+ void autoUpAgentLevel(Long memberId);
- void returnMoneyToAgent();
+ void returnMoneyToAgent(Long orderId);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
index 4142ac7..cfc8201 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -1,9 +1,21 @@
package cc.mrbird.febs.mall.service.impl;
+import cc.mrbird.febs.mall.entity.AgentInfo;
+import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
+import cc.mrbird.febs.mall.entity.MallMember;
+import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
+import cc.mrbird.febs.mall.mapper.MallMemberMapper;
+import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
import cc.mrbird.febs.mall.service.IAgentService;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONObject;
+import jdk.nashorn.internal.ir.IfNode;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+
+import java.util.List;
/**
* @author wzy
@@ -14,13 +26,90 @@
@RequiredArgsConstructor
public class AgentServiceImpl implements IAgentService {
- @Override
- public void autoUpAgentLevel() {
+ private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
+ private final MallMemberMapper memberMapper;
+ private final MallOrderInfoMapper orderInfoMapper;
+ @Override
+ public void autoUpAgentLevel(Long memberId) {
+ MallMember member = memberMapper.selectById(memberId);
+ if(StrUtil.isBlank(member.getReferrerIds())) {
+ return;
+ }
+
+ List<String> ids = StrUtil.split(member.getReferrerIds(), ',');
+ List<MallMember> parentMembers = memberMapper.selectByInviteIds(ids);
+ for (MallMember parent : parentMembers) {
+ DataDictionaryCustom nextLevel = dataDictionaryCustomMapper.selectNextAgentLevelInfo(parent.getLevel());
+ if (nextLevel == null) {
+ log.info("当前层级无下一级:{}", parent.getLevel());
+ return;
+ }
+
+ AgentInfo agentInfo = JSONObject.parseObject(nextLevel.getValue(), AgentInfo.class);
+ if (!orderCntFinish(parent, agentInfo)) {
+ return;
+ }
+
+ if (!agentCntFinish(parent, agentInfo)) {
+ return;
+ }
+
+ parent.setLevel(nextLevel.getCode());
+ memberMapper.updateById(parent);
+ }
+ }
+
+ /**
+ * 判断用户直推下单数量或团队下单数量是否达标
+ *
+ * @return
+ */
+ private boolean orderCntFinish(MallMember member, AgentInfo agentInfo) {
+ Integer cnt = orderInfoMapper.selectCntDirectOrTeam(agentInfo.getOrderType(), member.getInviteId());
+
+ if (cnt >= agentInfo.getOrderCnt()) {
+ return true;
+ }
+ log.info("用户{}订单未达标, 当前数量为:{},要求数量:{}, 当前等级为:{}", member.getAccount(), cnt, agentInfo.getOrderCnt(), member.getLevel());
+ return false;
+ }
+
+ /**
+ * 判断下级代理数量是否达标
+ *
+ * @return
+ */
+ private boolean agentCntFinish(MallMember member, AgentInfo agentInfo) {
+ if (agentInfo.getLastCnt() == null) {
+ return true;
+ }
+
+ // 直推用户
+ List<MallMember> directMember = memberMapper.selectByRefererId(member.getInviteId());
+ if (CollUtil.isEmpty(directMember)) {
+ return false;
+ }
+
+ // 用户团队达到指定代理数量,且都不在同一条线
+ int i = 0;
+ for (MallMember child : directMember) {
+ List<MallMember> mallMembers = memberMapper.selectChildAgentList(child.getInviteId(), member.getLevel());
+ if (CollUtil.isNotEmpty(mallMembers)) {
+ i++;
+ }
+ }
+
+ if (i >= agentInfo.getLastCnt()) {
+ return true;
+ }
+
+ log.info("用户:{}代理数量未达标, 当前等级:{}, 当前数量:{}, 目标数量:{}", member.getAccount(), member.getLevel(), i, agentInfo.getLastCnt());
+ return false;
}
@Override
- public void returnMoneyToAgent() {
+ public void returnMoneyToAgent(Long orderId) {
}
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 10d2594..3799ce2 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -1,6 +1,7 @@
package cc.mrbird.febs.mall.service.impl;
import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.*;
@@ -53,6 +54,7 @@
private final MallMoneyFlowMapper mallMoneyFlowMapper;
private final IApiMallMemberWalletService walletService;
private final MallMemberPaymentMapper mallMemberPaymentMapper;
+ private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
@Value("${spring.profiles.active}")
private String active;
@@ -95,7 +97,7 @@
mallMember.setName(registerDto.getAccount());
mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
- mallMember.setLevel("1");
+ mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name());
mallMember.setSex("男");
this.baseMapper.insert(mallMember);
@@ -220,6 +222,10 @@
mallMemberVo.setHasPayment(1);
}
+ DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.AGENT_LEVEL, mallMember.getLevel());
+ if (dic != null) {
+ mallMemberVo.setLevelName(dic.getDescription());
+ }
MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId());
mallMemberVo.setBalance(wallet.getBalance());
return new FebsResponse().success().data(mallMemberVo);
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 9648eda..da7fa39 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -275,6 +275,8 @@
orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
orderInfo.setReceivingTime(new Date());
this.baseMapper.updateById(orderInfo);
+
+ agentProducer.sendAutoLevelUpMsg(member.getId());
}
@Override
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsCategoryVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsCategoryVo.java
index 304b15e..d45dc92 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsCategoryVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsCategoryVo.java
@@ -23,6 +23,9 @@
@ApiModelProperty(value = "父级分类ID")
private Long parentId;
+ @ApiModelProperty(value = "分类图片")
+ private String image;
+
@ApiModelProperty(value = "子类集合")
private List<MallGoodsCategoryVo> child;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java b/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
index 4eacd0c..954534b 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
@@ -30,6 +30,9 @@
@ApiModelProperty(value = "支付方式")
private String payMethod;
+ @ApiModelProperty(value = "支付方式类型")
+ private Integer payMethodType;
+
@ApiModelProperty(value = "状态")
private Integer status;
@@ -59,4 +62,21 @@
@ApiModelProperty(value = "剩余时间")
private Long remainTime;
+
+ public Integer getPayMethodType() {
+ if (this.payMethod == null) {
+ return 0;
+ }
+ switch (this.payMethod) {
+ case "微信支付" :
+ return 1;
+ case "支付宝支付" :
+ return 2;
+ case "积分支付" :
+ return 3;
+ default:
+ return 3;
+ }
+ }
}
+
diff --git a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
index 2656088..f2c3807 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
@@ -7,4 +7,5 @@
public class QueueConstants {
public static final String QUEUE_DEFAULT = "queue_default";
+ public static final String AGENT_AUTO_LEVEL_UP = "queue_agent_auto_level_up";
}
diff --git a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
index c4d5a29..4569e1a 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
@@ -1,5 +1,6 @@
package cc.mrbird.febs.rabbit.consumer;
+import cc.mrbird.febs.mall.service.IAgentService;
import cc.mrbird.febs.mall.service.IApiMallOrderInfoService;
import cc.mrbird.febs.rabbit.constants.QueueConstants;
import cc.mrbird.febs.rabbit.enumerates.RabbitQueueEnum;
@@ -22,6 +23,8 @@
@Autowired
private IApiMallOrderInfoService orderInfoService;
+ @Autowired
+ private IAgentService agentService;
@RabbitListener(queues = QueueConstants.QUEUE_DEFAULT)
public void agentReturn(Message message, Channel channel) {
@@ -33,4 +36,10 @@
log.info("订单超时支付自动取消:{}", id);
orderInfoService.autoCancelOrder(Long.parseLong(id));
}
+
+ @RabbitListener(queues = QueueConstants.AGENT_AUTO_LEVEL_UP)
+ public void agentAutoLevelUp(String id) {
+ log.info("收到代理自动升级消息:{}", id);
+ agentService.autoUpAgentLevel(Long.parseLong(id));
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
index dc6e308..1ba5bd2 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
@@ -12,6 +12,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.UUID;
@@ -60,4 +61,14 @@
}
});
}
+
+ /**
+ * 发送代理自动升级消息
+ *
+ * @param memberId
+ */
+ public void sendAutoLevelUpMsg(@NotNull Long memberId) {
+ log.info("发送代理自动升级消息:{}", memberId);
+ rabbitTemplate.convertAndSend(ExchangeConstants.EXCHANGE_DEFAULT, RouteKeyConstants.ROUTE_KEY_DEFAULT, memberId);
+ }
}
diff --git a/src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml b/src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml
index 390daa3..102362d 100644
--- a/src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml
+++ b/src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml
@@ -14,4 +14,18 @@
select * from data_dictionary_custom where id = #{id}
</select>
+
+ <select id="selectNextAgentLevelInfo" resultType="cc.mrbird.febs.mall.entity.DataDictionaryCustom">
+ select * from data_dictionary_custom x
+ where x.type='AGENT_LEVEL_REQUIRE' and x.code = (
+ select a.code from data_dictionary_custom a
+ where a.type='AGENT_LEVEL' and a.value > (select b.value from data_dictionary_custom b where b.type='AGENT_LEVEL' and b.code=#{level})
+ order by a.value limit 1
+ )
+ </select>
+
+ <select id="selectDicDataByTypeAndCode" resultType="cc.mrbird.febs.mall.entity.DataDictionaryCustom">
+ select * from data_dictionary_custom a
+ where a.type=#{type} and a.code=#{code}
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml
index 0d4b86e..8a6fe9f 100644
--- a/src/main/resources/mapper/modules/MallMemberMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -94,4 +94,23 @@
inner join mall_order_info b on e.id=b.member_id and b.status=4
where e.invite_id=#{inviteId} or e.referrer_id=#{inviteId}
</select>
+
+ <select id="selectByRefererId" resultType="cc.mrbird.febs.mall.entity.MallMember">
+ select * from mall_member
+ where referrer_id=#{inviteId}
+ </select>
+
+ <select id="selectChildAgentList" resultType="cc.mrbird.febs.mall.entity.MallMember">
+ select * from mall_member
+ where find_in_set(#{inviteId}, referrer_ids) and level=#{agentLevel}
+ </select>
+
+ <select id="selectByInviteIds" resultType="cc.mrbird.febs.mall.entity.MallMember">
+ select * from mall_member
+ where invite_id IN
+ <foreach collection = "list" item = "item" separator="," open = "(" close = ")" >
+ #{item}
+ </foreach >
+ order by id desc
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index 82931b5..e59fcf6 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -142,4 +142,18 @@
<select id="selectOrderInfoByStatus" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
select * from mall_order_info where status=#{status}
</select>
+
+ <select id="selectCntDirectOrTeam" resultType="java.lang.Integer">
+ select IFNULL(count(1), 0) from mall_order_info a
+ inner join mall_member b on a.member_id=b.ID
+ <where>
+ a.status=4
+ <if test="type == 1">
+ and b.referrer_id=#{inviteId}
+ </if>
+ <if test="type == 2">
+ and find_in_set(#{inviteId}, b.referrer_ids)
+ </if>
+ </where>
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/test/java/cc/mrbird/febs/AgentTest.java b/src/test/java/cc/mrbird/febs/AgentTest.java
index 1c6f049..1ba4792 100644
--- a/src/test/java/cc/mrbird/febs/AgentTest.java
+++ b/src/test/java/cc/mrbird/febs/AgentTest.java
@@ -1,10 +1,19 @@
package cc.mrbird.febs;
+import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
+import cc.mrbird.febs.mall.entity.AgentInfo;
+import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
+import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
+import cc.mrbird.febs.mall.service.IAgentService;
import cc.mrbird.febs.rabbit.producter.AgentProducer;
+import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
+import org.aspectj.weaver.loadtime.Agent;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
+
+import java.math.BigDecimal;
/**
* @author wzy
@@ -17,8 +26,51 @@
@Autowired
private AgentProducer agentProducer;
+ @Autowired
+ private DataDictionaryCustomMapper dataDictionaryCustomMapper;
+
+ @Autowired
+ private IAgentService agentService;
+
@Test
public void agentTest() {
// agentProducer.sendDelayMsg(1L, 10000L);
}
+
+ @Test
+ public void insertAgentTest() {
+ AgentInfo agentInfo = new AgentInfo();
+ agentInfo.setOrderType(2);
+ agentInfo.setOrderCnt(2000);
+ agentInfo.setLastCnt(3);
+ agentInfo.setDirectIncome(BigDecimal.valueOf(50));
+ agentInfo.setTeamIncome(BigDecimal.valueOf(15));
+ agentInfo.setTeamIncomeType(2);
+
+ DataDictionaryCustom data = new DataDictionaryCustom();
+ data.setType("AGENT_LEVEL_REQUIRE");
+ data.setCode(AgentLevelEnum.FOUR_LEVEL.name());
+ data.setValue(JSONObject.toJSONString(agentInfo));
+ dataDictionaryCustomMapper.insert(data);
+ }
+
+ @Test
+ public void insertData() {
+ int i = 1;
+ for (AgentLevelEnum value : AgentLevelEnum.values()) {
+ DataDictionaryCustom data = new DataDictionaryCustom();
+ data.setType("AGENT_LEVEL");
+ data.setDescription(value.getName());
+ data.setCode(value.name());
+ data.setValue(String.valueOf(i));
+ dataDictionaryCustomMapper.insert(data);
+ }
+
+ }
+
+ @Test
+ public void autoLevelUp() {
+ // agentService.autoUpAgentLevel(3L);
+ agentProducer.sendAutoLevelUpMsg(3L);
+ }
}
--
Gitblit v1.9.1