|
@@ -1,5 +1,8 @@
|
|
|
package com.yonge.cooleshow.portal.service.impl;
|
|
|
|
|
|
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
|
+import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
+import com.yonge.cooleshow.common.exception.BizException;
|
|
|
import com.yonge.cooleshow.mall.common.exception.Asserts;
|
|
|
import com.yonge.cooleshow.mbg.mapper.UmsMemberLevelMapper;
|
|
|
import com.yonge.cooleshow.mbg.mapper.UmsMemberMapper;
|
|
@@ -10,7 +13,6 @@ import com.yonge.cooleshow.mbg.model.UmsMemberLevelExample;
|
|
|
import com.yonge.cooleshow.portal.domain.MemberDetails;
|
|
|
import com.yonge.cooleshow.portal.service.UmsMemberCacheService;
|
|
|
import com.yonge.cooleshow.portal.service.UmsMemberService;
|
|
|
-import com.macro.mall.security.util.JwtTokenUtil;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -39,20 +41,15 @@ import java.util.Random;
|
|
|
@Service
|
|
|
public class UmsMemberServiceImpl implements UmsMemberService {
|
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(UmsMemberServiceImpl.class);
|
|
|
- @Autowired
|
|
|
- private PasswordEncoder passwordEncoder;
|
|
|
- @Autowired
|
|
|
- private JwtTokenUtil jwtTokenUtil;
|
|
|
+
|
|
|
@Autowired
|
|
|
private UmsMemberMapper memberMapper;
|
|
|
@Autowired
|
|
|
private UmsMemberLevelMapper memberLevelMapper;
|
|
|
@Autowired
|
|
|
private UmsMemberCacheService memberCacheService;
|
|
|
- @Value("${redis.key.authCode}")
|
|
|
- private String REDIS_KEY_PREFIX_AUTH_CODE;
|
|
|
- @Value("${redis.expire.authCode}")
|
|
|
- private Long AUTH_CODE_EXPIRE_SECONDS;
|
|
|
+ @Autowired
|
|
|
+ private SysUserFeignService sysUserFeignService;
|
|
|
|
|
|
@Override
|
|
|
public UmsMember getByUsername(String username) {
|
|
@@ -75,72 +72,34 @@ public class UmsMemberServiceImpl implements UmsMemberService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void register(String username, String password, String telephone, String authCode) {
|
|
|
- //验证验证码
|
|
|
- if(!verifyAuthCode(authCode,telephone)){
|
|
|
- Asserts.fail("验证码错误");
|
|
|
- }
|
|
|
- //查询是否已有该用户
|
|
|
- UmsMemberExample example = new UmsMemberExample();
|
|
|
- example.createCriteria().andUsernameEqualTo(username);
|
|
|
- example.or(example.createCriteria().andPhoneEqualTo(telephone));
|
|
|
- List<UmsMember> umsMembers = memberMapper.selectByExample(example);
|
|
|
- if (!CollectionUtils.isEmpty(umsMembers)) {
|
|
|
- Asserts.fail("该用户已经存在");
|
|
|
- }
|
|
|
- //没有该用户进行添加操作
|
|
|
- UmsMember umsMember = new UmsMember();
|
|
|
- umsMember.setUsername(username);
|
|
|
- umsMember.setPhone(telephone);
|
|
|
- umsMember.setPassword(passwordEncoder.encode(password));
|
|
|
- umsMember.setCreateTime(new Date());
|
|
|
- umsMember.setStatus(1);
|
|
|
- //获取默认会员等级并设置
|
|
|
- UmsMemberLevelExample levelExample = new UmsMemberLevelExample();
|
|
|
- levelExample.createCriteria().andDefaultStatusEqualTo(1);
|
|
|
- List<UmsMemberLevel> memberLevelList = memberLevelMapper.selectByExample(levelExample);
|
|
|
- if (!CollectionUtils.isEmpty(memberLevelList)) {
|
|
|
- umsMember.setMemberLevelId(memberLevelList.get(0).getId());
|
|
|
- }
|
|
|
- memberMapper.insert(umsMember);
|
|
|
- umsMember.setPassword(null);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public String generateAuthCode(String telephone) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- Random random = new Random();
|
|
|
- for(int i=0;i<6;i++){
|
|
|
- sb.append(random.nextInt(10));
|
|
|
- }
|
|
|
- memberCacheService.setAuthCode(telephone,sb.toString());
|
|
|
- return sb.toString();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void updatePassword(String telephone, String password, String authCode) {
|
|
|
- UmsMemberExample example = new UmsMemberExample();
|
|
|
- example.createCriteria().andPhoneEqualTo(telephone);
|
|
|
- List<UmsMember> memberList = memberMapper.selectByExample(example);
|
|
|
- if(CollectionUtils.isEmpty(memberList)){
|
|
|
- Asserts.fail("该账号不存在");
|
|
|
+ public UmsMember getCurrentMember() {
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ if (sysUser == null || sysUser.getId() == null) {
|
|
|
+ throw new BizException("用户信息获取失败");
|
|
|
}
|
|
|
- //验证验证码
|
|
|
- if(!verifyAuthCode(authCode,telephone)){
|
|
|
- Asserts.fail("验证码错误");
|
|
|
+ UmsMember umsMember = getById(sysUser.getId());
|
|
|
+ // 商城库用户不存在-> 创建
|
|
|
+ if (umsMember == null || umsMember.getId() == null) {
|
|
|
+ umsMember = new UmsMember();
|
|
|
+ umsMember.setId(sysUser.getId());
|
|
|
+ umsMember.setCreateTime(sysUser.getCreateTime());
|
|
|
+ umsMember.setUsername(sysUser.getUsername());
|
|
|
+ umsMember.setPassword(sysUser.getPassword());
|
|
|
+ umsMember.setPhone(sysUser.getPhone());
|
|
|
+ umsMember.setStatus(sysUser.getLockFlag());
|
|
|
+ umsMember.setIcon(sysUser.getAvatar());
|
|
|
+ umsMember.setGender(sysUser.getGender());
|
|
|
+ umsMember.setBirthday(sysUser.getBirthdate());
|
|
|
+ //获取默认会员等级并设置
|
|
|
+ UmsMemberLevelExample levelExample = new UmsMemberLevelExample();
|
|
|
+ levelExample.createCriteria().andDefaultStatusEqualTo(1);
|
|
|
+ List<UmsMemberLevel> memberLevelList = memberLevelMapper.selectByExample(levelExample);
|
|
|
+ if (!CollectionUtils.isEmpty(memberLevelList)) {
|
|
|
+ umsMember.setMemberLevelId(memberLevelList.get(0).getId());
|
|
|
+ }
|
|
|
+ memberMapper.insert(umsMember);
|
|
|
}
|
|
|
- UmsMember umsMember = memberList.get(0);
|
|
|
- umsMember.setPassword(passwordEncoder.encode(password));
|
|
|
- memberMapper.updateByPrimaryKeySelective(umsMember);
|
|
|
- memberCacheService.delMember(umsMember.getId());
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public UmsMember getCurrentMember() {
|
|
|
- SecurityContext ctx = SecurityContextHolder.getContext();
|
|
|
- Authentication auth = ctx.getAuthentication();
|
|
|
- MemberDetails memberDetails = (MemberDetails) auth.getPrincipal();
|
|
|
- return memberDetails.getUmsMember();
|
|
|
+ return umsMember;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -160,37 +119,4 @@ public class UmsMemberServiceImpl implements UmsMemberService {
|
|
|
}
|
|
|
throw new UsernameNotFoundException("用户名或密码错误");
|
|
|
}
|
|
|
-
|
|
|
- @Override
|
|
|
- public String login(String username, String password) {
|
|
|
- String token = null;
|
|
|
- //密码需要客户端加密后传递
|
|
|
- try {
|
|
|
- UserDetails userDetails = loadUserByUsername(username);
|
|
|
- if(!passwordEncoder.matches(password,userDetails.getPassword())){
|
|
|
- throw new BadCredentialsException("密码不正确");
|
|
|
- }
|
|
|
- UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
|
|
|
- SecurityContextHolder.getContext().setAuthentication(authentication);
|
|
|
- token = jwtTokenUtil.generateToken(userDetails);
|
|
|
- } catch (AuthenticationException e) {
|
|
|
- LOGGER.warn("登录异常:{}", e.getMessage());
|
|
|
- }
|
|
|
- return token;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public String refreshToken(String token) {
|
|
|
- return jwtTokenUtil.refreshHeadToken(token);
|
|
|
- }
|
|
|
-
|
|
|
- //对输入的验证码进行校验
|
|
|
- private boolean verifyAuthCode(String authCode, String telephone){
|
|
|
- if(StringUtils.isEmpty(authCode)){
|
|
|
- return false;
|
|
|
- }
|
|
|
- String realAuthCode = memberCacheService.getAuthCode(telephone);
|
|
|
- return authCode.equals(realAuthCode);
|
|
|
- }
|
|
|
-
|
|
|
}
|