diff --git a/xlcs-parent/service/service-acl/pom.xml b/xlcs-parent/service/service-acl/pom.xml index 31ab053..36279e7 100644 --- a/xlcs-parent/service/service-acl/pom.xml +++ b/xlcs-parent/service/service-acl/pom.xml @@ -17,4 +17,11 @@ UTF-8 + + + + org.springframework.boot + spring-boot-starter-data-redis + + diff --git a/xlcs-parent/service/service-acl/src/main/java/com/yovinchen/xlcs/acl/controller/IndexController.java b/xlcs-parent/service/service-acl/src/main/java/com/yovinchen/xlcs/acl/controller/IndexController.java index e405632..8a9900d 100644 --- a/xlcs-parent/service/service-acl/src/main/java/com/yovinchen/xlcs/acl/controller/IndexController.java +++ b/xlcs-parent/service/service-acl/src/main/java/com/yovinchen/xlcs/acl/controller/IndexController.java @@ -1,13 +1,11 @@ package com.yovinchen.xlcs.acl.controller; +import com.yovinchen.xlcs.acl.service.AdminService; import com.yovinchen.xlcs.common.result.Result; import io.swagger.annotations.Api; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; -import java.util.HashMap; import java.util.Map; /** @@ -23,13 +21,18 @@ import java.util.Map; @RequestMapping("/admin/acl/index") public class IndexController { + + @Autowired + private AdminService adminService; + /** * 1、请求登陆的login */ @PostMapping("login") - public Result login() { - Map map = new HashMap<>(); - map.put("token", "admin-token"); + public Result login(@RequestBody Map loginRequest) { + String username = loginRequest.get("username"); + String password = loginRequest.get("password"); + Map map = adminService.loginAdmin(username, password); return Result.ok(map); } @@ -37,10 +40,8 @@ public class IndexController { * 2 获取用户信息 */ @GetMapping("info") - public Result info() { - Map map = new HashMap<>(); - map.put("name", "yovinchen"); - map.put("avatar", "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"); + public Result info(String token) { + Map map = adminService.getInfo(token); return Result.ok(map); } diff --git a/xlcs-parent/service/service-acl/src/main/java/com/yovinchen/xlcs/acl/service/AdminService.java b/xlcs-parent/service/service-acl/src/main/java/com/yovinchen/xlcs/acl/service/AdminService.java index c753a2e..2fc8267 100644 --- a/xlcs-parent/service/service-acl/src/main/java/com/yovinchen/xlcs/acl/service/AdminService.java +++ b/xlcs-parent/service/service-acl/src/main/java/com/yovinchen/xlcs/acl/service/AdminService.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.yovinchen.xlcs.model.acl.Admin; import com.yovinchen.xlcs.vo.acl.AdminQueryVo; +import java.util.Map; + /** * ClassName: AdminService * Package: com.yovinchen.xlcs.acl.service @@ -25,4 +27,19 @@ public interface AdminService extends IService { */ IPage selectPage(Page pageParam, AdminQueryVo userQueryVo); + /** + * 后台登录 + * + * @param username + * @param password + * @return + */ + Map loginAdmin(String username, String password); + + /** + * 获取用户信息 + * + * @return + */ + Map getInfo(String token); } diff --git a/xlcs-parent/service/service-acl/src/main/java/com/yovinchen/xlcs/acl/service/impl/AdminServiceImpl.java b/xlcs-parent/service/service-acl/src/main/java/com/yovinchen/xlcs/acl/service/impl/AdminServiceImpl.java index c1c242a..883c746 100644 --- a/xlcs-parent/service/service-acl/src/main/java/com/yovinchen/xlcs/acl/service/impl/AdminServiceImpl.java +++ b/xlcs-parent/service/service-acl/src/main/java/com/yovinchen/xlcs/acl/service/impl/AdminServiceImpl.java @@ -1,5 +1,6 @@ package com.yovinchen.xlcs.acl.service.impl; +import cn.hutool.core.lang.UUID; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -11,9 +12,14 @@ import com.yovinchen.xlcs.model.acl.Admin; import com.yovinchen.xlcs.vo.acl.AdminQueryVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; + /** * ClassName: AdminServiceImpl * Package: com.yovinchen.xlcs.acl.service.impl @@ -32,6 +38,16 @@ public class AdminServiceImpl extends ServiceImpl implements @Autowired private RoleService roleService; + @Autowired + private RedisTemplate redisTemplate; + + /** + * 分页查询用户 + * + * @param pageParam + * @param userQueryVo + * @return + */ @Override public IPage selectPage(Page pageParam, AdminQueryVo userQueryVo) { log.info("获取管理用户分页列表入参{}", pageParam.toString() + userQueryVo.toString()); @@ -47,4 +63,42 @@ public class AdminServiceImpl extends ServiceImpl implements IPage pageModel = baseMapper.selectPage(pageParam, wrapper); return pageModel; } + + /** + * 后台登录 + * + * @param username + * @param password + * @return + */ + @Override + public Map loginAdmin(String username, String password) { + + Integer i = baseMapper.selectCount(new LambdaQueryWrapper().eq(Admin::getUsername, username) + .eq(Admin::getPassword, password)); + if (i != 0) { + // 验证通过,生成随机token + String token = UUID.randomUUID() + .toString(); + redisTemplate.opsForValue() + .set(token, username); + redisTemplate.expire(token, 5, TimeUnit.MINUTES); // 设置过期时间为五分钟 + // 返回包含token的结果 + Map map = new HashMap<>(); + map.put("token", token); + return map; + } + return null; + } + + @Override + public Map getInfo(String token) { + String username = (String) redisTemplate.opsForValue() + .get(token); + Admin admin = baseMapper.selectOne(new LambdaQueryWrapper().eq(Admin::getUsername, username)); + Map map = new HashMap<>(); + map.put("name", admin.getName()); + map.put("avatar", "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"); + return map; + } }