Commit f81f2e0c authored by unset's avatar unset

会员分成记录信息

parent 3394c653
...@@ -328,17 +328,82 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -328,17 +328,82 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
//处理上级会员等级初始化 //处理上级会员等级初始化
public void executeParentMemberLevel(BaseUserMember baseUserMember) { public void executeParentMemberLevel(BaseUserMember baseUserMember) {
log.info("【处理上级会员等级】: {}", baseUserMember); log.info("【处理上级会员等级】: {}", baseUserMember);
AppUserRelation appUserRelation = appUserRelationBiz.getRelationByUserId(baseUserMember.getUserId()); Example example = new Example(BaseUserMemberLevel.class);
example.createCriteria().andEqualTo("isdel", 0);
example.orderBy("level");
List<BaseUserMemberLevel> userMemberLevelList = BaseUserMemberLevelMapper.selectByExample(example);
if (userMemberLevelList != null && userMemberLevelList.size() > 0) {
generateParentLevel(baseUserMember.getUserId(), userMemberLevelList);
}
}
private void generateParentLevel(Integer userId, List<BaseUserMemberLevel> userMemberLevelList) {
AppUserRelation appUserRelation = appUserRelationBiz.getRelationByUserId(userId);
if (appUserRelation != null && appUserRelation.getIsDel() != 1) { if (appUserRelation != null && appUserRelation.getIsDel() != 1) {
//查询上级当前等级
Integer parentId = appUserRelation.getParentId(); Integer parentId = appUserRelation.getParentId();
BaseUserMemberVO parentUser = findOneByUserId(parentId); BaseUserMemberVO parentUser = findOneByUserId(parentId);
if (parentUser != null) { log.info("【上级会员信息】: {}", parentUser);
List<AppUserRelation> appUserRelationList = appUserRelationBiz.findMemberPageByLeaderId(parentId); if (parentUser != null && parentId != 0) {
//查询当前会员需要变更到的级别
Integer parentNewLevel = generateUserLevel(parentId, parentUser.getMemberLevel(), userMemberLevelList);
//如果返回为空,或者当前级别和需要更新的级别相等,不做处理
log.info("【上级需要修改等级为: {}】", parentNewLevel);
if (parentNewLevel != null && !parentNewLevel.equals(parentUser.getMemberLevel())) {
Example example1 = new Example(BaseUserMember.class);
example1.createCriteria().andEqualTo("userId", parentId).andEqualTo("isDel", 0);
BaseUserMember parent = mapper.selectOneByExample(example1);
if (parent != null) {
parent.setMemberLevel(parentNewLevel);
updateSelectiveByIdRe(parent);
}
generateParentLevel(parentId, userMemberLevelList);
}
}
} }
}
/**
* 获取用户需要修改的等级
* @param userId
* @param level
* @param userMemberLevelList
*/
private Integer generateUserLevel(Integer userId, Integer level, List<BaseUserMemberLevel> userMemberLevelList) {
BaseUserMemberLevel currentLevel = null;
BaseUserMemberLevel subLevel = null;
for (int i = 0; i < userMemberLevelList.size(); i ++ ) {
if (level.equals(userMemberLevelList.get(i).getLevel())) {
currentLevel = userMemberLevelList.get(i);
if ((i+1) < userMemberLevelList.size()) {
subLevel = userMemberLevelList.get(i + 1);
} }
} }
}
//当前会员不存在,直接返回
if (currentLevel == null) {
return null;
}
//当前会员不分成且下一级也是不分成,直接返回
if ( currentLevel.getIsShare() != null && currentLevel.getIsShare() == 0 ) {
//下一级不存在、或者下一级不分成,就直接返回
if (subLevel == null || (subLevel != null && subLevel.getIsShare() != null && subLevel.getIsShare() == 0)) {
return currentLevel.getLevel();
}
}
//需要分成,则查询当前用户的下级是否符合条件,符合条件level+1
List<BaseUserMember> baseUserMemberList = mapper.selectAllChildrenByLevel(userId, level-1);
if (baseUserMemberList != null && baseUserMemberList.size() > getLimitNumber()) {
return generateUserLevel(userId, level+1, userMemberLevelList);
} else {
return level;
}
}
private Integer getLimitNumber() {
return 3;
}
public void deleteByUserIds(Collection<Integer> userIds) { public void deleteByUserIds(Collection<Integer> userIds) {
Example example = new Example(BaseUserMember.class); Example example = new Example(BaseUserMember.class);
......
...@@ -6,6 +6,8 @@ import com.github.wxiaoqi.security.admin.vo.UserMemberVo; ...@@ -6,6 +6,8 @@ import com.github.wxiaoqi.security.admin.vo.UserMemberVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/** /**
* 用户会员表 * 用户会员表
* *
...@@ -19,4 +21,6 @@ public interface BaseUserMemberMapper extends Mapper<BaseUserMember> { ...@@ -19,4 +21,6 @@ public interface BaseUserMemberMapper extends Mapper<BaseUserMember> {
public UserMemberVo getInfoByUserId(@Param("userId")Integer userId); public UserMemberVo getInfoByUserId(@Param("userId")Integer userId);
BaseUserMemberVO getBaseUserMemberVOByUserId(@Param("userId") Integer userId); BaseUserMemberVO getBaseUserMemberVOByUserId(@Param("userId") Integer userId);
List<BaseUserMember> selectAllChildrenByLevel(@Param("userId") Integer userId, @Param("level") Integer level);
} }
...@@ -140,4 +140,11 @@ public class BaseUserMemberController extends BaseController<BaseUserMemberBiz, ...@@ -140,4 +140,11 @@ public class BaseUserMemberController extends BaseController<BaseUserMemberBiz,
public ObjectRestResponse updateUserLevel(@RequestBody BaseUserMember baseUserMember) { public ObjectRestResponse updateUserLevel(@RequestBody BaseUserMember baseUserMember) {
return baseBiz.updateUserLevel(baseUserMember); return baseBiz.updateUserLevel(baseUserMember);
} }
@GetMapping(value = "/app/unauth/executeParentMemberLevel")
public void executeParentMemberLevel(BaseUserMember baseUserMember) {
baseBiz.executeParentMemberLevel(baseUserMember);
}
} }
...@@ -27,6 +27,11 @@ ...@@ -27,6 +27,11 @@
select * from base_user_member where user_id=#{userId} and is_del=0 limit 1 select * from base_user_member where user_id=#{userId} and is_del=0 limit 1
</select> </select>
<select id="selectAllChildrenByLevel" resultType="com.github.wxiaoqi.security.admin.entity.BaseUserMember">
select bum.* from app_user_relation aur
LEFT JOIN base_user_member bum on bum.user_id = aur.user_id
where aur.parent_id = #{userId} and bum.member_level &gt;= #{level}
</select>
<select id="getBaseUserMemberVOByUserId" parameterType="Integer" <select id="getBaseUserMemberVOByUserId" parameterType="Integer"
resultType="com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO"> resultType="com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO">
......
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