From 6b2ef0291960fe24ef0e816a49e0a1bc914f0f89 Mon Sep 17 00:00:00 2001
From: "bei.wu" <5306546@qq.com>
Date: Sat, 19 Sep 2020 15:37:11 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=94=A8=E6=88=B7=E7=99=BB?=
=?UTF-8?q?=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-business/pom.xml | 6 ++
.../business/ajax/AjaxLoginController.java | 35 +++++++-
.../business/mapper/BizMemberMapper.java | 8 ++
.../business/service/IBizMemberService.java | 7 ++
.../service/impl/BizMemberServiceImpl.java | 11 ++-
.../ruoyi/business/sync/UserDataListener.java | 2 +-
.../com/ruoyi/business/utils/Encrypt.java | 2 +-
.../com/ruoyi/business/utils/JWTUtil.java | 81 +++++++++++++++++++
.../mapper/business/BizMemberMapper.xml | 6 ++
9 files changed, 152 insertions(+), 6 deletions(-)
create mode 100644 ruoyi-business/src/main/java/com/ruoyi/business/utils/JWTUtil.java
diff --git a/ruoyi-business/pom.xml b/ruoyi-business/pom.xml
index 27254841e..f4f64aebb 100644
--- a/ruoyi-business/pom.xml
+++ b/ruoyi-business/pom.xml
@@ -84,6 +84,12 @@
easyexcel
2.2.6
+
+
+ io.jsonwebtoken
+ jjwt
+ 0.7.0
+
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/ajax/AjaxLoginController.java b/ruoyi-business/src/main/java/com/ruoyi/business/ajax/AjaxLoginController.java
index fac038871..ca7841596 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/ajax/AjaxLoginController.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/ajax/AjaxLoginController.java
@@ -1,14 +1,20 @@
package com.ruoyi.business.ajax;
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.business.domain.BizMember;
import com.ruoyi.business.service.IBizMemberService;
+import com.ruoyi.business.utils.Encrypt;
+import com.ruoyi.business.utils.JWTUtil;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
+import java.util.Objects;
/**
* 前端用户登录
@@ -22,7 +28,32 @@ public class AjaxLoginController extends BaseController {
private IBizMemberService bizMemberService;
@PostMapping("/login")
- public AjaxResult login(@Param("loginName") String loginName, @Param("password") String password) {
- return super.success();
+ public AjaxResult login(String mobile, String password) {
+ if (StringUtils.isBlank(mobile) || StringUtils.isBlank(password)) {
+ return AjaxResult.warn("请输入用户名密码");
+ }
+
+ BizMember member = bizMemberService.selectBizMemberByMobile(mobile);
+ if (Objects.isNull(member)) {
+ return AjaxResult.warn("用户名或密码错误");
+ }
+ // DES加密
+ String encryptPassword = Encrypt.encrypt(password);
+ if (!encryptPassword.equals(member.getPassword())) {
+ return AjaxResult.warn("用户名或密码错误");
+ }
+
+ if (member.getIsEnable() == 0) {
+ return AjaxResult.warn("账户已禁用,请联系系统管理员");
+ }
+
+ JSONObject object = new JSONObject();
+ object.put("id", member.getId());
+ object.put("name", member.getMemberName());
+ object.put("mobile", member.getMobile());
+
+ Long day = 1000L * 60L * 60L;
+ String token = JWTUtil.createJWT(object.toJSONString(), day);
+ return super.success(token);
}
}
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizMemberMapper.java b/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizMemberMapper.java
index 99acd1acc..915e6cbe1 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizMemberMapper.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizMemberMapper.java
@@ -29,6 +29,14 @@ public interface BizMemberMapper
*/
public BizMember selectBizMemberSimple(Long id);
+ /**
+ * 查询会员
+ *
+ * @param mobile 手机号
+ * @return 会员
+ */
+ public BizMember selectBizMemberByMobile(String mobile);
+
/**
* 查询会员列表
*
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizMemberService.java b/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizMemberService.java
index 20caa1df8..049246072 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizMemberService.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizMemberService.java
@@ -29,6 +29,13 @@ public interface IBizMemberService
*/
public BizMember selectBizMemberSimple(Long id);
+ /**
+ * 查询会员
+ * @param mobile 手机号
+ * @return 会员
+ */
+ public BizMember selectBizMemberByMobile(String mobile);
+
/**
* 查询会员列表
*
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizMemberServiceImpl.java b/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizMemberServiceImpl.java
index dd7797266..21000e5ee 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizMemberServiceImpl.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizMemberServiceImpl.java
@@ -17,6 +17,8 @@ import com.ruoyi.business.domain.BizMember;
import com.ruoyi.business.service.IBizMemberService;
import com.ruoyi.common.core.text.Convert;
+import javax.annotation.Resource;
+
/**
* 会员Service业务层处理
*
@@ -26,10 +28,10 @@ import com.ruoyi.common.core.text.Convert;
@Service
public class BizMemberServiceImpl implements IBizMemberService
{
- @Autowired
+ @Resource
private BizMemberMapper bizMemberMapper;
- @Autowired
+ @Resource
private BizAccountMapper bizAccountMapper;
/**
@@ -56,6 +58,11 @@ public class BizMemberServiceImpl implements IBizMemberService
return bizMemberMapper.selectBizMemberSimple(id);
}
+ @Override
+ public BizMember selectBizMemberByMobile(String mobile) {
+ return bizMemberMapper.selectBizMemberByMobile(mobile);
+ }
+
/**
* 查询会员列表
*
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/sync/UserDataListener.java b/ruoyi-business/src/main/java/com/ruoyi/business/sync/UserDataListener.java
index b378a8a33..752a95003 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/sync/UserDataListener.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/sync/UserDataListener.java
@@ -30,7 +30,7 @@ public class UserDataListener extends AnalysisEventListener {
member.setIsEnable("Y".equals(userData.getEnable()) ? 1 : 0);
member.setCreateTime(DateUtils.parseDate(userData.getAddtim()));
member.setUpdateTime(DateUtils.parseDate(userData.getAddtim()));
- member.setMobile(userData.getReferrerTelephone());
+ member.setMobile(userData.getUserTelephone());
member.setRecommendMobile(userData.getReferrerTelephone());
member.setRecommendName(userData.getReferrer());
member.setId(Long.valueOf(userData.getId()));
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/utils/Encrypt.java b/ruoyi-business/src/main/java/com/ruoyi/business/utils/Encrypt.java
index 8dcbbcca2..6c51c6160 100644
--- a/ruoyi-business/src/main/java/com/ruoyi/business/utils/Encrypt.java
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/utils/Encrypt.java
@@ -73,7 +73,7 @@ public class Encrypt {
public static void main(String args[]) {
//System.out.println(encrypt("x123456"));
- //System.out.println(decrypt("248E135E28C103B4"));
+ System.out.println(decrypt("83A0D00DA5194E0E88CDC5FCADED588F"));
//System.out.println(DictUtils.getDictLabel("busi_recommend_award", "1"));
}
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/utils/JWTUtil.java b/ruoyi-business/src/main/java/com/ruoyi/business/utils/JWTUtil.java
new file mode 100644
index 000000000..ca4125c82
--- /dev/null
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/utils/JWTUtil.java
@@ -0,0 +1,81 @@
+package com.ruoyi.business.utils;
+
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.JwtBuilder;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.SignatureAlgorithm;
+import io.jsonwebtoken.impl.crypto.MacProvider;
+
+import java.security.Key;
+import java.util.Date;
+
+/**
+ * jwt-token 加、解密工具类 Created by wubei on 16/12/11.
+ */
+public class JWTUtil {
+ static final Key KEY = MacProvider.generateKey();
+
+ public static final String AUTHORIZATION = "Authorization";
+
+ public static String createJWT(String subject) {
+ return JWTUtil.createJWT(subject, null);
+ }
+
+ public static String createJWT(String subject, Long ttlMillis) {
+ long nowMillis = System.currentTimeMillis();
+ Date now = new Date(nowMillis);
+
+ JwtBuilder builder =
+ Jwts.builder().setIssuedAt(now).setSubject(subject).signWith(SignatureAlgorithm.HS256, AUTHORIZATION);
+ if (ttlMillis != null) {
+ long expMillis = nowMillis + ttlMillis;
+ Date exp = new Date(expMillis);
+ builder.setExpiration(exp);
+ }
+ return builder.compact();
+ }
+
+ public static Claims parseJWT(String compactJws) {
+ Jwts.parser().isSigned(compactJws);
+ Claims claims = Jwts.parser().setSigningKey(AUTHORIZATION).parseClaimsJws(compactJws).getBody();
+ return claims;
+ }
+
+ /*public static SysUserBean getSysUser(HttpServletRequest request, RedisTemplate redisTemplate,
+ boolean flag) {
+ String token = request.getHeader(AUTHORIZATION);
+
+ // 取值attr里面予值
+ if (StringUtils.isBlank(token)) {
+ Object tToken = request.getAttribute(AUTHORIZATION);
+ if (tToken != null) {
+ token = tToken.toString();
+ }
+ }
+
+ if (StringUtils.isBlank(token)) {
+ if (flag) {
+ throw new AuthorizationException();
+ } else {
+ return new SysUserBean();
+ }
+ }
+ try {
+ Claims claims = parseJWT(token);
+ String hasKey = claims.getSubject();
+ if (redisTemplate.hasKey(hasKey)) {
+ String conpanyUserStr = (String)redisTemplate.opsForValue().get(hasKey);
+ SysUserBean sysUseBean = JSONObject.parseObject(conpanyUserStr, SysUserBean.class);
+ if (token.equals(sysUseBean.getToken())) {
+ return sysUseBean;
+ } else {
+ throw new AuthorizationException();
+ }
+ } else {
+ throw new AuthorizationException();
+ }
+ } catch (Exception e) {
+ throw new AuthorizationException();
+ }
+ }*/
+}
diff --git a/ruoyi-business/src/main/resources/mapper/business/BizMemberMapper.xml b/ruoyi-business/src/main/resources/mapper/business/BizMemberMapper.xml
index 942631052..7f5489841 100644
--- a/ruoyi-business/src/main/resources/mapper/business/BizMemberMapper.xml
+++ b/ruoyi-business/src/main/resources/mapper/business/BizMemberMapper.xml
@@ -53,6 +53,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select id, mobile, member_name, password, recommend_id, recommend_mobile, recommend_name, member_type, is_delete, is_enable, create_by, create_time, update_by, update_time
from biz_member where id = #{id}
+
+
insert into biz_member
@@ -126,4 +131,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select count(id) from biz_member a where recommend_id = #{memberID}
and exists(select id from biz_order b where b.member_id = a.id and is_team = 1)
+
\ No newline at end of file