浏览代码

add login

张延森 2 年前
父节点
当前提交
b1335ea714

+ 17
- 0
src/main/java/com/njyunzhi/invoice/common/EncryptUtils.java 查看文件

@@ -0,0 +1,17 @@
1
+package com.njyunzhi.invoice.common;
2
+
3
+import org.springframework.util.DigestUtils;
4
+
5
+public class EncryptUtils {
6
+
7
+    public static String md5(String str, String ...slats) {
8
+        String slat = "";
9
+        if (null != slats && slats.length > 0) {
10
+            slat = slats[0];
11
+        }
12
+
13
+        String base = str + slat;
14
+        String md5 = DigestUtils.md5DigestAsHex(base.getBytes());
15
+        return md5;
16
+    }
17
+}

+ 50
- 0
src/main/java/com/njyunzhi/invoice/controller/LoginController.java 查看文件

@@ -0,0 +1,50 @@
1
+package com.njyunzhi.invoice.controller;
2
+
3
+import cn.dev33.satoken.stp.StpUtil;
4
+import com.njyunzhi.invoice.common.BaseController;
5
+import com.njyunzhi.invoice.common.ResponseBean;
6
+import com.njyunzhi.invoice.common.StringUtils;
7
+import com.njyunzhi.invoice.entity.SysUser;
8
+import com.njyunzhi.invoice.service.ISysUserService;
9
+import com.njyunzhi.invoice.vo.LoginParm;
10
+import io.swagger.annotations.Api;
11
+import io.swagger.annotations.ApiOperation;
12
+import io.swagger.annotations.ApiParam;
13
+import org.springframework.beans.factory.annotation.Autowired;
14
+import org.springframework.web.bind.annotation.PostMapping;
15
+import org.springframework.web.bind.annotation.RequestBody;
16
+import org.springframework.web.bind.annotation.RequestMapping;
17
+import org.springframework.web.bind.annotation.RestController;
18
+
19
+import java.util.HashMap;
20
+import java.util.Map;
21
+
22
+
23
+@Api(tags ="登录")
24
+@RestController
25
+@RequestMapping("/")
26
+public class LoginController extends BaseController {
27
+
28
+    @Autowired
29
+    ISysUserService iSysUserService;
30
+
31
+    @PostMapping("/admin/login")
32
+    @ApiOperation(value="后台登录", notes = "后台登录", httpMethod = "POST", response = ResponseBean.class)
33
+    public ResponseBean login(@ApiParam("登录参数") @RequestBody LoginParm loginParm) throws Exception {
34
+
35
+        if (StringUtils.isEmpty(loginParm.getUserName()) || StringUtils.isEmpty(loginParm.getPassword())) {
36
+            return ResponseBean.error("登录用户或者密码不能为空");
37
+        }
38
+
39
+        SysUser sysUser = iSysUserService.login(loginParm);
40
+
41
+        StpUtil.login(sysUser.getUserId(), "admin");
42
+        String tokenValue = StpUtil.getTokenValue();
43
+
44
+        Map<String, Object> result = new HashMap<>();
45
+        result.put("user", sysUser);
46
+        result.put("token", tokenValue);
47
+
48
+        return ResponseBean.success(result);
49
+    }
50
+}

+ 2
- 0
src/main/java/com/njyunzhi/invoice/mapper/SysUserMapper.java 查看文件

@@ -3,6 +3,7 @@ package com.njyunzhi.invoice.mapper;
3 3
 import com.njyunzhi.invoice.entity.SysUser;
4 4
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 5
 import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
6 7
 
7 8
 /**
8 9
  * <p>
@@ -15,4 +16,5 @@ import org.apache.ibatis.annotations.Mapper;
15 16
 @Mapper
16 17
 public interface SysUserMapper extends BaseMapper<SysUser> {
17 18
 
19
+    SysUser getByLoginID(@Param("userName") String userName);
18 20
 }

+ 4
- 0
src/main/java/com/njyunzhi/invoice/service/ISysUserService.java 查看文件

@@ -2,6 +2,7 @@ package com.njyunzhi.invoice.service;
2 2
 
3 3
 import com.njyunzhi.invoice.entity.SysUser;
4 4
 import com.baomidou.mybatisplus.extension.service.IService;
5
+import com.njyunzhi.invoice.vo.LoginParm;
5 6
 
6 7
 /**
7 8
  * <p>
@@ -13,4 +14,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
13 14
  */
14 15
 public interface ISysUserService extends IService<SysUser> {
15 16
 
17
+    SysUser getByLoginID(String userName);
18
+
19
+    SysUser login(LoginParm loginParm) throws Exception;
16 20
 }

+ 28
- 0
src/main/java/com/njyunzhi/invoice/service/impl/SysUserServiceImpl.java 查看文件

@@ -1,9 +1,12 @@
1 1
 package com.njyunzhi.invoice.service.impl;
2 2
 
3
+import com.njyunzhi.invoice.common.EncryptUtils;
3 4
 import com.njyunzhi.invoice.entity.SysUser;
4 5
 import com.njyunzhi.invoice.mapper.SysUserMapper;
5 6
 import com.njyunzhi.invoice.service.ISysUserService;
6 7
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
8
+import com.njyunzhi.invoice.vo.LoginParm;
9
+import org.springframework.beans.factory.annotation.Autowired;
7 10
 import org.springframework.stereotype.Service;
8 11
 
9 12
 /**
@@ -17,4 +20,29 @@ import org.springframework.stereotype.Service;
17 20
 @Service
18 21
 public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService {
19 22
 
23
+    @Override
24
+    public SysUser getByLoginID(String userName) {
25
+        return baseMapper.getByLoginID(userName);
26
+    }
27
+
28
+    @Override
29
+    public SysUser login(LoginParm loginParm) throws Exception {
30
+        SysUser sysUser = baseMapper.getByLoginID(loginParm.getUserName());
31
+        if (null == sysUser) {
32
+            throw new Exception("用户名或者密码不正确");
33
+        }
34
+
35
+        boolean isRight = checkPassword(loginParm.getPassword(), sysUser.getPassword(), sysUser.getUserId());
36
+        if (!isRight) {
37
+            throw new Exception("用户名或者密码不正确");
38
+        }
39
+
40
+        sysUser.setPassword(null);
41
+        return sysUser;
42
+    }
43
+
44
+    boolean checkPassword(String src, String targ, String salt) {
45
+        String newPass = EncryptUtils.md5(src, salt);
46
+        return targ.equals(newPass);
47
+    }
20 48
 }

+ 17
- 0
src/main/java/com/njyunzhi/invoice/vo/LoginParm.java 查看文件

@@ -0,0 +1,17 @@
1
+package com.njyunzhi.invoice.vo;
2
+
3
+import io.swagger.annotations.ApiModel;
4
+import io.swagger.annotations.ApiModelProperty;
5
+import lombok.Data;
6
+
7
+@Data
8
+@ApiModel("登录参数")
9
+public class LoginParm {
10
+
11
+    @ApiModelProperty("用户名")
12
+    String userName;
13
+
14
+    @ApiModelProperty("密码")
15
+    String password;
16
+
17
+}

+ 8
- 0
src/main/resources/mapper/SysUserMapper.xml 查看文件

@@ -2,4 +2,12 @@
2 2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 3
 <mapper namespace="com.njyunzhi.invoice.mapper.SysUserMapper">
4 4
 
5
+    <select id="getByLoginID" resultType="com.njyunzhi.invoice.entity.SysUser">
6
+        SELECT
7
+            *
8
+        FROM
9
+            sys_user t
10
+        WHERE
11
+            t.login_id = #{userName}
12
+    </select>
5 13
 </mapper>