package com.iailab.module.system.service.member; import cn.hutool.core.util.ClassUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.extra.spring.SpringUtil; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; /** * Member Service 实现类 * * @author iailab */ @Service public class MemberServiceImpl implements MemberService { @Value("${iailab.info.base-package}") private String basePackage; private volatile Object memberUserApi; @Override public String getMemberUserMobile(Long id) { Object user = getMemberUser(id); if (user == null) { return null; } return ReflectUtil.invoke(user, "getMobile"); } @Override public String getMemberUserEmail(Long id) { Object user = getMemberUser(id); if (user == null) { return null; } return ReflectUtil.invoke(user, "getEmail"); } private Object getMemberUser(Long id) { if (id == null) { return null; } return ReflectUtil.invoke(getMemberUserApi(), "getUser", id); } private Object getMemberUserApi() { if (memberUserApi == null) { memberUserApi = SpringUtil.getBean(ClassUtil.loadClass(String.format("%s.module.member.api.user.MemberUserApi", basePackage))); } return memberUserApi; } }