Commit 8ca59d6d authored by unset's avatar unset

Merge branch 'dev-tiande-member' into dev-tiande

parents 2fe24821 5416721d
...@@ -398,8 +398,17 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -398,8 +398,17 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
return currentLevel.getLevel(); return currentLevel.getLevel();
} }
} }
Example example = new Example(BaseUserMemberLevel.class);
example.createCriteria().andEqualTo("isdel", 0).andEqualTo("isShare", 1);
example.orderBy("level");
List<BaseUserMemberLevel> baseUserMemberLevelList = BaseUserMemberLevelMapper.selectByExample(example);
//如果当前等级小于等于第一个分成等级的低一等级, 则直接查询大于等于第一个分成等级的低一等级的下级用户数量, 否则直接取当前等级的低一级会员数量
Integer queryLevel = level - 1;
if (level <= (baseUserMemberLevelList.get(0).getLevel() - 1)) {
queryLevel = baseUserMemberLevelList.get(0).getLevel() - 1;
}
//需要分成,则查询当前用户的下级是否符合条件,符合条件level+1 //需要分成,则查询当前用户的下级是否符合条件,符合条件level+1
List<BaseUserMember> baseUserMemberList = mapper.selectAllChildrenByLevel(userId, level-1); List<BaseUserMember> baseUserMemberList = mapper.selectAllChildrenByLevel(userId, queryLevel);
if (baseUserMemberList != null && baseUserMemberList.size() > getLimitNumber()) { if (baseUserMemberList != null && baseUserMemberList.size() > getLimitNumber()) {
return generateUserLevel(userId, level+1, userMemberLevelList); return generateUserLevel(userId, level+1, userMemberLevelList);
} else { } else {
......
...@@ -210,36 +210,44 @@ public class MemberShareRecordBiz extends BaseBiz<MemberShareRecordMapper, Membe ...@@ -210,36 +210,44 @@ public class MemberShareRecordBiz extends BaseBiz<MemberShareRecordMapper, Membe
public void generateMemberShareQueue(OrderMemberDetail orderMemberDetail) { public void generateMemberShareQueue(OrderMemberDetail orderMemberDetail) {
if (orderMemberDetail != null) { if (orderMemberDetail != null) {
log.info("会员订单信息: {}", orderMemberDetail); log.info("会员订单信息: {}", orderMemberDetail);
BaseUserMemberLevel baseUserMemberLevel = baseUserMemberLevelMapper.selectOne(new BaseUserMemberLevel(){{setIsdel(0); setId(orderMemberDetail.getMemberLevelId());}}); Example example = new Example(BaseUserMemberLevel.class);
log.info("会员等级信息: {}", baseUserMemberLevel); example.createCriteria().andEqualTo("isdel", 0).andEqualTo("isShare", 1);
if (baseUserMemberLevel != null && baseUserMemberLevel.getIsShare() == 1) { example.orderBy("level");
List<BaseUserMember> baseUserMemberList = baseUserMemberBiz.selectList(new BaseUserMember(){{setIsDel(0); setMemberLevel(orderMemberDetail.getMemberLevel());}}); List<BaseUserMemberLevel> baseUserMemberLevelList = baseUserMemberLevelMapper.selectByExample(example);
if (baseUserMemberList != null && baseUserMemberList.size() > 0) { if (baseUserMemberLevelList != null && baseUserMemberLevelList.size() > 0) {
List<Integer> userIds = baseUserMemberList.stream().map(BaseUserMember::getUserId).collect(Collectors.toList()); //如果购买会员是分成会员低一级会员以及分成会员,才参与分成
if (userIds != null && userIds.size() > 0) { if (orderMemberDetail.getMemberLevel().compareTo(baseUserMemberLevelList.get(0).getLevel() - 1) >= 0) {
MemberShareRecord memberShareRecord = new MemberShareRecord(); //所有分成会员都需要新增一条记录
memberShareRecord.setOrderNo(orderMemberDetail.getBaseOrder().getNo()); for (BaseUserMemberLevel baseUserMemberLevel : baseUserMemberLevelList) {
memberShareRecord.setPayTime(orderMemberDetail.getBaseOrder().getPayTime()); List<BaseUserMember> baseUserMemberList = baseUserMemberBiz.selectList(new BaseUserMember(){{setIsDel(0); setMemberLevel(orderMemberDetail.getMemberLevel());}});
memberShareRecord.setOrderAmount(orderMemberDetail.getBaseOrder().getOrderAmount()); if (baseUserMemberList != null && baseUserMemberList.size() > 0) {
memberShareRecord.setMemberLevel(orderMemberDetail.getMemberLevel()); List<Integer> userIds = baseUserMemberList.stream().map(BaseUserMember::getUserId).collect(Collectors.toList());
memberShareRecord.setMemberLevelId(orderMemberDetail.getMemberLevelId()); if (userIds != null && userIds.size() > 0) {
memberShareRecord.setUserId(orderMemberDetail.getBaseOrder().getUserId().longValue()); MemberShareRecord memberShareRecord = new MemberShareRecord();
memberShareRecord.setOrderTime(orderMemberDetail.getCrtTime()); memberShareRecord.setOrderNo(orderMemberDetail.getBaseOrder().getNo());
memberShareRecord.setTotalAmount(baseUserMemberLevel.getShareAmount()); memberShareRecord.setPayTime(orderMemberDetail.getBaseOrder().getPayTime());
memberShareRecord.setMemberNum(userIds.size()); memberShareRecord.setOrderAmount(orderMemberDetail.getBaseOrder().getOrderAmount());
memberShareRecord.setAmount(baseUserMemberLevel.getShareAmount().divide(new BigDecimal(userIds.size()).setScale(2, BigDecimal.ROUND_HALF_UP))); memberShareRecord.setMemberLevel(orderMemberDetail.getMemberLevel());
StringBuilder stringBuilder = new StringBuilder(); memberShareRecord.setMemberLevelId(orderMemberDetail.getMemberLevelId());
userIds.parallelStream().forEach(id -> { memberShareRecord.setUserId(orderMemberDetail.getBaseOrder().getUserId().longValue());
stringBuilder.append(","); memberShareRecord.setOrderTime(orderMemberDetail.getCrtTime());
stringBuilder.append(id); memberShareRecord.setTotalAmount(baseUserMemberLevel.getShareAmount());
stringBuilder.append(","); memberShareRecord.setMemberNum(userIds.size());
}); memberShareRecord.setAmount(baseUserMemberLevel.getShareAmount().divide(new BigDecimal(userIds.size()).setScale(2, BigDecimal.ROUND_HALF_UP)));
memberShareRecord.setMemberIds(stringBuilder.toString()); StringBuilder stringBuilder = new StringBuilder();
addUpdate(memberShareRecord); userIds.parallelStream().forEach(id -> {
stringBuilder.append(",");
stringBuilder.append(id);
stringBuilder.append(",");
});
memberShareRecord.setMemberIds(stringBuilder.toString());
addUpdate(memberShareRecord);
}
}
} }
} }
}
} }
}
} }
} }
\ No newline at end of file
...@@ -756,7 +756,6 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -756,7 +756,6 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
//发送消息队列到admin,进行分成计算 //发送消息队列到admin,进行分成计算
mqSenderFeign.sendMessage(RabbitConstant.ADMIN_TOPIC, RabbitConstant.KEY_MEMBER_SHARE, JSONUtil.toJsonStr(omd)); mqSenderFeign.sendMessage(RabbitConstant.ADMIN_TOPIC, RabbitConstant.KEY_MEMBER_SHARE, JSONUtil.toJsonStr(omd));
} else if (OrderTypeEnum.RENT_VEHICLE.getCode().equals(baseOrder.getType())) { } else if (OrderTypeEnum.RENT_VEHICLE.getCode().equals(baseOrder.getType())) {
updateOrder.setStatus(OrderStatusEnum.ORDER_TOSTART.getCode()); updateOrder.setStatus(OrderStatusEnum.ORDER_TOSTART.getCode());
orvd = orderRentVehicleBiz.selectOne(new OrderRentVehicleDetail() {{ orvd = orderRentVehicleBiz.selectOne(new OrderRentVehicleDetail() {{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment