张延森 vor 2 Jahren
Ursprung
Commit
b1335ea714

+ 17
- 0
src/main/java/com/njyunzhi/invoice/common/EncryptUtils.java Datei anzeigen

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 Datei anzeigen

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 Datei anzeigen

3
 import com.njyunzhi.invoice.entity.SysUser;
3
 import com.njyunzhi.invoice.entity.SysUser;
4
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
 import org.apache.ibatis.annotations.Mapper;
5
 import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
6
 
7
 
7
 /**
8
 /**
8
  * <p>
9
  * <p>
15
 @Mapper
16
 @Mapper
16
 public interface SysUserMapper extends BaseMapper<SysUser> {
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 Datei anzeigen

2
 
2
 
3
 import com.njyunzhi.invoice.entity.SysUser;
3
 import com.njyunzhi.invoice.entity.SysUser;
4
 import com.baomidou.mybatisplus.extension.service.IService;
4
 import com.baomidou.mybatisplus.extension.service.IService;
5
+import com.njyunzhi.invoice.vo.LoginParm;
5
 
6
 
6
 /**
7
 /**
7
  * <p>
8
  * <p>
13
  */
14
  */
14
 public interface ISysUserService extends IService<SysUser> {
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 Datei anzeigen

1
 package com.njyunzhi.invoice.service.impl;
1
 package com.njyunzhi.invoice.service.impl;
2
 
2
 
3
+import com.njyunzhi.invoice.common.EncryptUtils;
3
 import com.njyunzhi.invoice.entity.SysUser;
4
 import com.njyunzhi.invoice.entity.SysUser;
4
 import com.njyunzhi.invoice.mapper.SysUserMapper;
5
 import com.njyunzhi.invoice.mapper.SysUserMapper;
5
 import com.njyunzhi.invoice.service.ISysUserService;
6
 import com.njyunzhi.invoice.service.ISysUserService;
6
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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
 import org.springframework.stereotype.Service;
10
 import org.springframework.stereotype.Service;
8
 
11
 
9
 /**
12
 /**
17
 @Service
20
 @Service
18
 public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService {
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 Datei anzeigen

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 Datei anzeigen

2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
 <mapper namespace="com.njyunzhi.invoice.mapper.SysUserMapper">
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
 </mapper>
13
 </mapper>