|
@@ -0,0 +1,100 @@
|
|
|
+package com.macro.mall.portal.service.impl;
|
|
|
+
|
|
|
+import com.macro.mall.mapper.UmsMemberLevelMapper;
|
|
|
+import com.macro.mall.mapper.UmsMemberMapper;
|
|
|
+import com.macro.mall.model.UmsMember;
|
|
|
+import com.macro.mall.model.UmsMemberExample;
|
|
|
+import com.macro.mall.model.UmsMemberLevel;
|
|
|
+import com.macro.mall.model.UmsMemberLevelExample;
|
|
|
+import com.macro.mall.portal.domain.CommonResult;
|
|
|
+import com.macro.mall.portal.service.UmsMemberService;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.security.authentication.AuthenticationManager;
|
|
|
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
|
|
+import org.springframework.security.authentication.encoding.PasswordEncoder;
|
|
|
+import org.springframework.security.core.AuthenticationException;
|
|
|
+import org.springframework.security.core.context.SecurityContextHolder;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 会员管理Service实现类
|
|
|
+ * Created by macro on 2018/8/3.
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class UmsMemberServiceImpl implements UmsMemberService {
|
|
|
+ @Autowired
|
|
|
+ private UmsMemberMapper memberMapper;
|
|
|
+ @Autowired
|
|
|
+ private UmsMemberLevelMapper memberLevelMapper;
|
|
|
+ @Autowired
|
|
|
+ private PasswordEncoder passwordEncoder;
|
|
|
+ @Autowired
|
|
|
+ private AuthenticationManager authenticationManager;
|
|
|
+ private static final Logger LOGGER = LoggerFactory.getLogger(UmsMemberServiceImpl.class);
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public UmsMember getByUsername(String username) {
|
|
|
+ UmsMemberExample example = new UmsMemberExample();
|
|
|
+ example.createCriteria().andUsernameEqualTo(username);
|
|
|
+ List<UmsMember> memberList = memberMapper.selectByExample(example);
|
|
|
+ if (!CollectionUtils.isEmpty(memberList)) {
|
|
|
+ return memberList.get(0);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public UmsMember register(String username, String password, String telephone, String authCode) {
|
|
|
+ // TODO: 2018/8/3 对验证码进行验证
|
|
|
+ //查询是否已有该用户
|
|
|
+ UmsMemberExample example = new UmsMemberExample();
|
|
|
+ example.createCriteria().andUsernameEqualTo(username);
|
|
|
+ example.or(example.createCriteria().andPhoneEqualTo(telephone));
|
|
|
+ List<UmsMember> umsMembers = memberMapper.selectByExample(example);
|
|
|
+ if (!CollectionUtils.isEmpty(umsMembers)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ //没有该用户进行添加操作
|
|
|
+ UmsMember umsMember = new UmsMember();
|
|
|
+ umsMember.setUsername(username);
|
|
|
+ umsMember.setPassword(passwordEncoder.encodePassword(password, null));
|
|
|
+ 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);
|
|
|
+ return umsMember;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommonResult login(String username, String password) {
|
|
|
+ CommonResult result;
|
|
|
+ UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(username, passwordEncoder.encodePassword(password, null));
|
|
|
+ try {
|
|
|
+ authenticationManager.authenticate(authentication);
|
|
|
+ SecurityContextHolder.getContext().setAuthentication(authentication);
|
|
|
+ result = new CommonResult().success("登录成功");
|
|
|
+ } catch (AuthenticationException e) {
|
|
|
+ LOGGER.warn("登录异常:{}", e.getMessage());
|
|
|
+ result = new CommonResult().failed("登录异常:"+e.getMessage());
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommonResult generateAuthCode(String telephone) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+}
|