|
@@ -1,27 +1,40 @@
|
|
|
package com.szwl.controller;
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.lang.UUID;
|
|
|
+import cn.hutool.core.util.IdUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.szwl.annotation.Audit;
|
|
|
+import com.szwl.constant.AuditEnum;
|
|
|
import com.szwl.constant.ResponseCodesEnum;
|
|
|
+import com.szwl.exception.BizException;
|
|
|
+import com.szwl.manager.TokenManager;
|
|
|
import com.szwl.model.bo.R;
|
|
|
import com.szwl.model.bo.ResponseModel;
|
|
|
+import com.szwl.model.bo.UserDetailBO;
|
|
|
+import com.szwl.model.entity.SysUserRole;
|
|
|
import com.szwl.model.entity.TAdmin;
|
|
|
import com.szwl.model.entity.TMessageCode;
|
|
|
-import com.szwl.model.entity.TProportion;
|
|
|
+import com.szwl.model.param.AddLoginUserParam;
|
|
|
+import com.szwl.service.SysRoleService;
|
|
|
+import com.szwl.service.SysUserRoleService;
|
|
|
import com.szwl.service.TAdminService;
|
|
|
import com.szwl.service.TMessageCodeService;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.codec.digest.DigestUtils;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
+import javax.validation.Valid;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -31,17 +44,57 @@ import java.util.List;
|
|
|
* @author wuhs
|
|
|
* @since 2022-04-14
|
|
|
*/
|
|
|
+@Slf4j
|
|
|
@Api(value = "/tAdmin", tags = {"账户"})
|
|
|
@RestController
|
|
|
@RequestMapping("/tAdmin")
|
|
|
public class TAdminController {
|
|
|
@Autowired
|
|
|
+ SysRoleService sysRoleService;
|
|
|
+ @Autowired
|
|
|
+ SysUserRoleService sysUserRoleService;
|
|
|
+ @Autowired
|
|
|
+ TokenManager tokenManager;
|
|
|
+ @Autowired
|
|
|
TAdminService tAdminService;
|
|
|
@Autowired
|
|
|
TMessageCodeService tMessageCodeService;
|
|
|
|
|
|
+ @ApiOperation(value = "添加账号")
|
|
|
+ @PostMapping("/addLoginUser")
|
|
|
+ @Transactional
|
|
|
+ @Audit(type = AuditEnum.INSERT,content = "#loginUser.name + '添加账号'")
|
|
|
+ public ResponseModel<?> addLoginUser(@RequestBody @Valid AddLoginUserParam param) {
|
|
|
+ //获取当前操作人员
|
|
|
+ UserDetailBO loginUser = tokenManager.getLoginUserDetails();
|
|
|
+ // 保存用户实体
|
|
|
+ Date now = new Date();
|
|
|
+ TAdmin entity = BeanUtil.copyProperties(param,TAdmin.class);
|
|
|
+ entity.setParentId(loginUser.getId());
|
|
|
+ entity.setIsAdmined(true);
|
|
|
+ entity.setCreateDate(now);
|
|
|
+ entity.setModifyDate(now);
|
|
|
+ entity.setIsLocked(false);
|
|
|
+ entity.setLoginFailureCount(0);
|
|
|
+
|
|
|
+ tAdminService.save(entity);
|
|
|
+ log.debug("添加账号 id:{},TAdmin:{}",entity.getId(),entity);
|
|
|
+ // 保存用户角色关系
|
|
|
+ List<SysUserRole> userRoleList = param.getRoleList()
|
|
|
+ .stream()
|
|
|
+ .map(e -> new SysUserRole().setRoleId(e).setUserId(String.valueOf(entity.getId())) )
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ if(CollUtil.isNotEmpty(userRoleList)){
|
|
|
+ sysUserRoleService.saveBatch(userRoleList);
|
|
|
+ }
|
|
|
+ return R.ok(entity);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@ApiOperation(value = "注册")
|
|
|
@PostMapping("/save")
|
|
|
+ @Transactional
|
|
|
public ResponseModel<?> save(@RequestBody TAdmin admin) {
|
|
|
if(StringUtils.isEmpty(admin.getUsername())||StringUtils.isEmpty(admin.getName())||StringUtils.isEmpty(admin.getPassword())){
|
|
|
return R.fail(ResponseCodesEnum.A0100,"数据有空!");
|
|
@@ -99,8 +152,7 @@ public class TAdminController {
|
|
|
admin.setIsEnabled(true);
|
|
|
admin.setLoginFailureCount(0);
|
|
|
admin.setIsLocked(false);
|
|
|
-// admin.setPassword(DigestUtils.md5Hex(admin.getPassword()));
|
|
|
- admin.setPassword(admin.getPassword());
|
|
|
+ admin.setPassword(DigestUtils.md5Hex(admin.getPassword()));
|
|
|
boolean b = tAdminService.save(admin);
|
|
|
tMessageCode.setModifyDate(new Date());
|
|
|
tMessageCodeService.saveOrUpdate(tMessageCode);
|
|
@@ -112,27 +164,34 @@ public class TAdminController {
|
|
|
}
|
|
|
@ApiOperation(value = "登录")
|
|
|
@PostMapping("/login")
|
|
|
- public ResponseModel<?> login(String username,String password) {
|
|
|
+ @Audit(type = AuditEnum.LOGIN,content = "#username + '请求登录'")
|
|
|
+ public ResponseModel<UserDetailBO> login(String username, String password) {
|
|
|
if(StringUtils.isEmpty(username)||StringUtils.isEmpty(password)){
|
|
|
return R.fail(ResponseCodesEnum.A0001,"参数有空");
|
|
|
}
|
|
|
+
|
|
|
//验证用户名登录
|
|
|
LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
|
|
|
- query.eq(TAdmin::getUsername,username);
|
|
|
+// query.eq(TAdmin::getUsername,username);
|
|
|
query.eq(TAdmin::getPassword,password);
|
|
|
- List<TAdmin> list = tAdminService.list(query);
|
|
|
- if(list.size()>0){
|
|
|
- return R.ok(list.get(0));
|
|
|
- }
|
|
|
- //验证手机登录
|
|
|
- LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
|
|
|
- query1.eq(TAdmin::getPhone,username);
|
|
|
- query1.eq(TAdmin::getPassword,password);
|
|
|
- List<TAdmin> list1 = tAdminService.list(query1);
|
|
|
- if(list1.size()>0){
|
|
|
- return R.ok(list1.get(0));
|
|
|
- }
|
|
|
- return R.fail(ResponseCodesEnum.A0001,"密码或用户名错误");
|
|
|
+ query.and(
|
|
|
+ wrapper -> {
|
|
|
+ wrapper.eq(TAdmin::getUsername,username)
|
|
|
+ .or().eq(TAdmin::getPhone,username);
|
|
|
+ }
|
|
|
+ );
|
|
|
+ TAdmin tAdmin = Optional.ofNullable(tAdminService.getOnly(query))
|
|
|
+ .orElseThrow(() -> new BizException(ResponseCodesEnum.L0002));
|
|
|
+ UserDetailBO userDetailBO = BeanUtil.copyProperties(tAdmin,UserDetailBO.class);
|
|
|
+
|
|
|
+ String token = IdUtil.simpleUUID();
|
|
|
+ userDetailBO.setCurrentToken(token);
|
|
|
+ // 获取拥有的权限菜单
|
|
|
+ Set<String> menuList = sysRoleService.listAuthMenuByUserId(userDetailBO.getId());
|
|
|
+ userDetailBO.setMenuCodeList(CollUtil.newArrayList(menuList));
|
|
|
+ // 保存到redis
|
|
|
+ tokenManager.saveAuthentication(token,userDetailBO);
|
|
|
+ return R.ok(userDetailBO);
|
|
|
}
|
|
|
@ApiOperation(value = "修改密码")
|
|
|
@PostMapping("/updatePassword")
|
|
@@ -156,12 +215,9 @@ public class TAdminController {
|
|
|
|
|
|
@ApiOperation(value = "获取账号信息")
|
|
|
@GetMapping("/getAdmin")
|
|
|
- public ResponseModel<IPage<TAdmin>> getAdmin(String id) {
|
|
|
- LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
|
|
|
- query.eq(TAdmin::getId,Long.valueOf(id));
|
|
|
- Page<TAdmin> page = new Page<>(0, 10, true);
|
|
|
- IPage<TAdmin> iPage = tAdminService.page(page, query);
|
|
|
- return R.ok(iPage);
|
|
|
+ public ResponseModel<TAdmin> getAdmin(String id) {
|
|
|
+ TAdmin tAdmin = tAdminService.getById(id);
|
|
|
+ return R.ok(tAdmin);
|
|
|
}
|
|
|
}
|
|
|
|