Merge remote-tracking branch 'origin/fix-bug-202303'

# Conflicts:
#	jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/CsrfFilter.java
#	jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml
This commit is contained in:
zer0Black
2023-05-30 10:30:17 +08:00
19 changed files with 835 additions and 628 deletions
@@ -30,8 +30,8 @@ public class SysMessageTemplate extends JeroEntity {
@Excel(name = "模板内容", width = 50)
private java.lang.String templateContent;
/**模板测试json*/
@Excel(name = "模板测试json", width = 15)
private java.lang.String templateTestJson;
/*@Excel(name = "模板测试json", width = 15)
private java.lang.String templateTestJson;*/
/**模板类型*/
@Excel(name = "模板类型", width = 15)
private java.lang.String templateType;
@@ -3,6 +3,7 @@ package com.jero.modules.system.controller;
import javax.servlet.http.HttpServletRequest;
import com.jero.common.api.vo.Results;
import com.jero.common.util.PasswordUtil;
import org.apache.commons.lang.StringUtils;
import com.jero.common.util.SqlInjectionUtil;
import com.jero.modules.system.mapper.SysDictMapper;
@@ -47,6 +48,11 @@ public class DuplicateCheckController {
//SQL注入校验(只限制非法串改数据库)
final String[] sqlInjCheck = {duplicateCheckVo.getTableName(),duplicateCheckVo.getFieldName()};
SqlInjectionUtil.filterContent(sqlInjCheck);
if ("phone".equals(duplicateCheckVo.getFieldName())) {
if (StringUtils.isNotBlank(duplicateCheckVo.getFieldVal())) {
duplicateCheckVo.setFieldVal(PasswordUtil.encrypt(duplicateCheckVo.getFieldVal()));
}
}
if (StringUtils.isNotBlank(duplicateCheckVo.getDataId())) {
// [2].编辑页面校验
num = sysDictMapper.duplicateCheckCountSql(duplicateCheckVo);
@@ -90,18 +90,12 @@ public class SysAnnouncementController {
HttpServletRequest req) {
Results<IPage<SysAnnouncement>> result = new Results<>();
sysAnnouncement.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
QueryWrapper<SysAnnouncement> queryWrapper = new QueryWrapper<>(sysAnnouncement);
Page<SysAnnouncement> page = new Page<>(pageNo,pageSize);
//排序逻辑 处理
String column = req.getParameter("column");
String order = req.getParameter("order");
if(oConvertUtils.isNotEmpty(column) && oConvertUtils.isNotEmpty(order)) {
if("asc".equals(order)) {
queryWrapper.orderByAsc(oConvertUtils.camelToUnderline(column));
}else {
queryWrapper.orderByDesc(oConvertUtils.camelToUnderline(column));
}
}
LambdaQueryWrapper<SysAnnouncement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysAnnouncement::getDelFlag, sysAnnouncement.getDelFlag());
queryWrapper.like(StringUtils.isNotBlank(sysAnnouncement.getTitile())
,SysAnnouncement::getTitile, sysAnnouncement.getTitile());
queryWrapper.orderByDesc(SysAnnouncement::getCreateTime);
IPage<SysAnnouncement> pageList = sysAnnouncementService.page(page, queryWrapper);
result.setSuccess(true);
result.setResult(pageList);
@@ -24,6 +24,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -68,6 +69,7 @@ public class SysPermissionController {
* @return
*/
@GetMapping("/page")
@RequiresPermissions("permission:list")
public Results<List<SysPermissionTree>> list() {
long start = System.currentTimeMillis();
Results<List<SysPermissionTree>> result = new Results<>();
@@ -94,6 +96,7 @@ public class SysPermissionController {
* @return
*/
@GetMapping("/getSystemMenuList")
@RequiresPermissions("permission:list")
public Results<List<SysPermissionTree>> getSystemMenuList() {
long start = System.currentTimeMillis();
Results<List<SysPermissionTree>> result = new Results<>();
@@ -123,6 +126,7 @@ public class SysPermissionController {
* @return
*/
@GetMapping("/getSystemSubmenu")
@RequiresPermissions("permission:list")
public Results<List<SysPermissionTree>> getSystemSubmenu(@RequestParam("parentId") String parentId){
Results<List<SysPermissionTree>> result = new Results<>();
try{
@@ -153,6 +157,7 @@ public class SysPermissionController {
* @return 返回 key-value 的 Map
*/
@GetMapping("/getSystemSubmenuBatch")
@RequiresPermissions("permission:list")
public Results<Map<String, List<SysPermissionTree>>> getSystemSubmenuBatch(@RequestParam("parentIds") String parentIds) {
try {
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<>();
@@ -186,6 +191,7 @@ public class SysPermissionController {
* @return
*/
@GetMapping("/getUserPermissionByToken")
@RequiresPermissions("permission:list")
public Results<JSONObject> getUserPermissionByToken() {
Results<JSONObject> result = new Results<>();
try {
@@ -230,6 +236,7 @@ public class SysPermissionController {
*/
//@RequiresRoles({ "admin" })
@PostMapping("/add")
@RequiresPermissions("permission:add")
public Results<Object> add(@RequestBody SysPermission permission) {
try {
permission = PermissionDataUtil.intelligentProcessData(permission);
@@ -248,6 +255,7 @@ public class SysPermissionController {
*/
//@RequiresRoles({ "admin" })
@PostMapping("/edit")
@RequiresPermissions("permission:edit")
public Results<Object> edit(@RequestBody SysPermission permission) {
try {
permission = PermissionDataUtil.intelligentProcessData(permission);
@@ -266,6 +274,7 @@ public class SysPermissionController {
*/
//@RequiresRoles({ "admin" })
@PostMapping("/delete")
@RequiresPermissions("permission:delete")
public Results<T> delete(@RequestBody Map<String, String> map) {
String id = map.get("id");
if(StringUtils.isBlank(id)){
@@ -287,6 +296,7 @@ public class SysPermissionController {
*/
//@RequiresRoles({ "admin" })
@PostMapping("/deleteBatch")
@RequiresPermissions("permission:delete")
public Results<T> deleteBatch(@RequestBody Map<String, String> map) {
String ids = map.get("ids");
if(StringUtils.isBlank(ids)){
@@ -312,6 +322,7 @@ public class SysPermissionController {
* @return
*/
@GetMapping("/queryTreeList")
@RequiresPermissions("permission:list")
public Results<Map<String, Object>> queryTreeList() {
Results<Map<String, Object>> result = new Results<>();
// 全部权限ids
@@ -344,6 +355,7 @@ public class SysPermissionController {
* @return
*/
@GetMapping("/queryListAsync")
@RequiresPermissions("permission:list")
public Results<List<TreeModel>> queryAsync(@RequestParam(name = "pid", required = false) String parentId) {
Results<List<TreeModel>> result = new Results<>();
try {
@@ -367,6 +379,7 @@ public class SysPermissionController {
* @return
*/
@GetMapping("/queryRolePermission")
@RequiresPermissions("permission:list")
public Results<List<String>> queryRolePermission(@RequestParam(name = "roleId", required = true) String roleId) {
Results<List<String>> result = new Results<>();
try {
@@ -385,6 +398,7 @@ public class SysPermissionController {
* @return
*/
@PostMapping("/saveRolePermission")
@RequiresPermissions("permission:add")
//@RequiresRoles({ "admin" })
public Results<String> saveRolePermission(@RequestBody JSONObject json) {
long start = System.currentTimeMillis();
@@ -655,6 +669,7 @@ public class SysPermissionController {
* @return
*/
@GetMapping("/getPermRuleListByPermId")
@RequiresPermissions("permission:list")
public Results<List<SysPermissionDataRule>> getPermRuleListByPermId(SysPermissionDataRule sysPermissionDataRule) {
List<SysPermissionDataRule> permRuleList = sysPermissionDataRuleService.getPermRuleListByPermId(sysPermissionDataRule.getPermissionId());
Results<List<SysPermissionDataRule>> result = new Results<>();
@@ -671,6 +686,7 @@ public class SysPermissionController {
*/
//@RequiresRoles({ "admin" })
@PostMapping("/addPermissionRule")
@RequiresPermissions("permission:add")
public Results<Object> addPermissionRule(@RequestBody SysPermissionDataRule sysPermissionDataRule) {
try {
sysPermissionDataRule.setCreateTime(new Date());
@@ -684,6 +700,7 @@ public class SysPermissionController {
//@RequiresRoles({ "admin" })
@PostMapping("/editPermissionRule")
@RequiresPermissions("permission:edit")
public Results<Object> editPermissionRule(@RequestBody SysPermissionDataRule sysPermissionDataRule) {
try {
sysPermissionDataRuleService.saveOrUpdate(sysPermissionDataRule);
@@ -702,6 +719,7 @@ public class SysPermissionController {
*/
//@RequiresRoles({ "admin" })
@PostMapping("/deletePermissionRule")
@RequiresPermissions("permission:delete")
public Results<Object> deletePermissionRule(@RequestBody Map<String,String> map) {
try {
String id = map.get("id");
@@ -723,6 +741,7 @@ public class SysPermissionController {
* @return
*/
@GetMapping("/queryPermissionRule")
@RequiresPermissions("permission:list")
public Results<List<SysPermissionDataRule>> queryPermissionRule(SysPermissionDataRule sysPermissionDataRule) {
try {
List<SysPermissionDataRule> permRuleList = sysPermissionDataRuleService.queryPermissionRule(sysPermissionDataRule);
@@ -739,6 +758,7 @@ public class SysPermissionController {
* @return
*/
@GetMapping("/queryDepartPermission")
@RequiresPermissions("permission:list")
public Results<List<String>> queryDepartPermission(@RequestParam(name = "departId", required = true) String departId) {
Results<List<String>> result = new Results<>();
try {
@@ -757,6 +777,7 @@ public class SysPermissionController {
* @return
*/
@PostMapping("/saveDepartPermission")
@RequiresPermissions("permission:add")
//@RequiresRoles({ "admin" })
public Results<String> saveDepartPermission(@RequestBody JSONObject json) {
long start = System.currentTimeMillis();
@@ -81,7 +81,7 @@ public class SysRoleController {
* @param req
* @return
*/
//@RequiresPermissions("sys:role:list")
@RequiresPermissions("sys:role:list")
@GetMapping("/page")
public Results<IPage<SysRole>> queryPageList(SysRole role,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@@ -181,7 +181,7 @@ public class SysRoleController {
* @param id
* @return
*/
//@RequiresPermissions("sys:role:list")
@RequiresPermissions("sys:role:list")
@GetMapping("/queryById")
public Results<SysRole> queryById(@RequestParam(name="id",required=true) String id) {
SysRole sysRole = sysRoleService.getById(id);
@@ -191,7 +191,7 @@ public class SysRoleController {
return Results.OK(sysRole);
}
}
//@RequiresPermissions("sys:role:list")
@RequiresPermissions("sys:role:list")
@GetMapping("/queryall")
public Results<List<SysRole>> queryall() {
List<SysRole> list = sysRoleService.list();
@@ -205,7 +205,7 @@ public class SysRoleController {
/**
* 校验角色编码唯一
*/
//@RequiresPermissions("sys:role:list")
@RequiresPermissions("sys:role:list")
@GetMapping("/checkRoleCode")
public Results<Boolean> checkUsername(String id, String roleCode) {
Results<Boolean> result = new Results<>();
@@ -292,7 +292,7 @@ public class SysRoleController {
/**
* 查询数据规则数据
*/
//@RequiresPermissions("sys:role:list")
@RequiresPermissions("sys:role:list")
@GetMapping(value = "/datarule/{permissionId}/{roleId}")
public Results<Map<String, Object>> loadDatarule(@PathVariable("permissionId") String permissionId, @PathVariable("roleId") String roleId) {
List<SysPermissionDataRule> list = sysPermissionDataRuleService.getPermRuleListByPermId(permissionId);
@@ -320,7 +320,7 @@ public class SysRoleController {
/**
* 保存数据规则至角色菜单关联表
*/
//@RequiresPermissions("sys:role:list")
@RequiresPermissions("sys:role:list")
@PostMapping(value = "/datarule")
public Results<T> saveDatarule(@RequestBody JSONObject jsonObject) {
try {
@@ -351,7 +351,7 @@ public class SysRoleController {
* @param request
* @return
*/
//@RequiresPermissions("sys:role:list")
@RequiresPermissions("sys:role:list")
@GetMapping("/queryTreeList")
public Results<Map<String,Object>> queryTreeList(HttpServletRequest request) {
Results<Map<String,Object>> result = new Results<>();
@@ -377,7 +377,7 @@ public class SysRoleController {
}
return result;
}
//@RequiresPermissions("sys:role:list")
@RequiresPermissions("sys:role:list")
private void getTreeModelList(List<TreeModel> treeList,List<SysPermission> metaList,TreeModel temp) {
for (SysPermission permission : metaList) {
String tempPid = permission.getParentId();
@@ -254,6 +254,7 @@ public class SysUserController {
}
@PostMapping("/delete")
@RequiresPermissions("sys:user:sel")
public Results<T> delete(@RequestBody Map<String,String> map) {
String id = map.get("id");
if(StringUtils.isBlank(id)){
@@ -265,6 +266,7 @@ public class SysUserController {
}
@PostMapping("/deleteBatch")
@RequiresPermissions("sys:user:sel")
public Results<T> deleteBatch(@RequestBody Map<String, String> map) {
String ids = map.get("ids");
if(StringUtils.isBlank(ids)){
@@ -276,7 +278,7 @@ public class SysUserController {
}
//@RequiresPermissions("sys:user:list")
@RequiresPermissions("user:edit")
@PostMapping("/frozenBatch")
public Results<Object> frozenBatch(@RequestBody JSONObject jsonObject) {
try {
@@ -296,11 +298,11 @@ public class SysUserController {
return Results.OK(OPTION_SUCCESS);
}
//@RequiresPermissions("sys:user:list")
@RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/queryById", method = RequestMethod.GET)
@GetMapping("/queryById")
public Results<SysUser> queryById(@RequestParam(name = "id", required = true) String id) {
SysUser sysUser = sysUserService.getById(id);
SysUser sysUser = sysUserService.queryById(id);
if (sysUser == null) {
return Results.error(INEXISTENCE);
} else {
@@ -308,7 +310,7 @@ public class SysUserController {
}
}
//@RequiresPermissions("sys:user:list")
@RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/queryUserRole", method = RequestMethod.GET)
@GetMapping("/queryUserRole")
public Results<List<String>> queryUserRole(@RequestParam(name = "userid", required = true) String userid) {
@@ -332,7 +334,7 @@ public class SysUserController {
* @param sysUser
* @return
*/
//@RequiresPermissions("sys:user:list")
@RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/checkOnlyUser", method = RequestMethod.GET)
@GetMapping("/checkOnlyUser")
public Results<Boolean> checkOnlyUser(SysUser sysUser) {
@@ -363,6 +365,7 @@ public class SysUserController {
*/
// @RequestMapping(value = "/changePassword", method = RequestMethod.PUT)
@PostMapping("/changePassword")
@RequiresPermissions("user:edit")
public Results<T> changePassword(@RequestBody SysUser sysUser) {
SysUser u = this.sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, sysUser.getUsername()));
if (u == null) {
@@ -378,7 +381,7 @@ public class SysUserController {
* @param userId
* @return
*/
//@RequiresPermissions("sys:user:list")
@RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/userDepartList", method = RequestMethod.GET)
@GetMapping("/userDepartList")
public Results<List<DepartIdModel>> getUserDepartsList(@RequestParam(name = "userId", required = true) String userId) {
@@ -408,7 +411,7 @@ public class SysUserController {
*
* @return
*/
//@RequiresPermissions("sys:user:list")
@RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/generateUserId", method = RequestMethod.GET)
@GetMapping("/generateUserId")
public Results<String> generateUserId() {
@@ -426,7 +429,7 @@ public class SysUserController {
* @param id
* @return
*/
//@RequiresPermissions("sys:user:list")
@RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/queryUserByDepId", method = RequestMethod.GET)
@GetMapping("/queryUserByDepId")
public Results<List<SysUser>> queryUserByDepId(@RequestParam(name = "id", required = true) String id, @RequestParam(name="realname",required=false) String realname , @RequestParam(name="username",required=false) String username) {
@@ -451,6 +454,10 @@ public class SysUserController {
item.setOrgCodeTxt(useDepNames.get(item.getId()))
);
}
userList.forEach(user -> {
// 对手机号、邮箱进行解密处理
sysUserService.proceedDecrypt(user);
});
try {
result.setSuccess(true);
@@ -471,6 +478,7 @@ public class SysUserController {
*/
// @RequestMapping(value = "/queryUserComponentData", method = RequestMethod.GET)
@GetMapping("/queryUserComponentData")
@RequiresPermissions("sys:user:list")
public Results<IPage<SysUser>> queryUserComponentData(
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
@@ -478,6 +486,10 @@ public class SysUserController {
@RequestParam(name="realname",required=false) String realname,
@RequestParam(name=USER_NAME,required=false) String username) {
IPage<SysUser> pageList = sysUserDepartService.queryDepartUserPageList(departId, username, realname, pageSize, pageNo);
pageList.getRecords().forEach(user -> {
// 对手机号、邮箱进行解密处理
sysUserService.proceedDecrypt(user);
});
return Results.OK(pageList);
}
@@ -501,6 +513,10 @@ public class SysUserController {
}
//update-end--Author:kangxiaolin Date:20180825 for[03]用户导出,如果选择数据则只导出相关数据----------------------
List<SysUser> pageList = sysUserService.list(queryWrapper);
pageList.forEach(user -> {
// 对手机号、邮箱进行解密处理
sysUserService.proceedDecrypt(user);
});
//导出文件名称
mv.addObject(JeroController.FILE_NAME, "用户列表");
@@ -577,6 +593,8 @@ public class SysUserController {
successAndErrorLines.setSuccessLines(successLines);
successAndErrorLines.setErrorLines(errorLines);
try {
// 对手机号、邮箱进行加密处理
sysUserService.proceedEncrypt(sysUserExcel);
sysUserService.save(sysUserExcel);
successAndErrorLines.setSuccessLines(successLines + 1);
} catch (Exception e) {
@@ -624,11 +642,15 @@ public class SysUserController {
*/
//@RequiresPermissions("sys:user:list")
@GetMapping("/queryByIds")
@RequiresPermissions("sys:user:list")
public Results<Collection<SysUser>> queryByIds(@RequestParam String userIds) {
Results<Collection<SysUser>> result = new Results<>();
String[] userId = userIds.split(",");
Collection<String> idList = Arrays.asList(userId);
Collection<SysUser> userRole = sysUserService.listByIds(idList);
userRole.forEach(user -> {
sysUserService.proceedDecrypt(user);
});
result.setSuccess(true);
result.setResult(userRole);
return result;
@@ -638,6 +660,7 @@ public class SysUserController {
* 首页用户重置密码
*/
@PostMapping("/updatePassword")
@RequiresPermissions("user:edit")
public Results<T> updatePassword(@RequestBody JSONObject json) {
String username = json.getString(USER_NAME);
String oldpassword = json.getString("oldpassword");
@@ -666,7 +689,7 @@ public class SysUserController {
}
return sysUserService.resetPassword(username,oldpassword,password,confirmpassword);
}
//@RequiresPermissions("sys:user:list")
@RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/userRoleList", method = RequestMethod.GET)
@GetMapping("/userRoleList")
public Results<IPage<SysUser>> userRoleList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@@ -676,6 +699,9 @@ public class SysUserController {
String roleId = req.getParameter("roleId");
String username = req.getParameter(USER_NAME);
IPage<SysUser> pageList = sysUserService.getUserByRoleId(page,roleId,username);
pageList.getRecords().forEach(user -> {
sysUserService.proceedDecrypt(user);
});
result.setSuccess(true);
result.setResult(pageList);
return result;
@@ -721,6 +747,7 @@ public class SysUserController {
*/
// @RequestMapping(value = "/deleteUserRole", method = RequestMethod.DELETE)
@PostMapping("/deleteUserRole")
@RequiresPermissions("sys:user:sel")
public Results<Object> deleteUserRole(@RequestParam(name="roleId") String roleId,
@RequestParam(name="userId",required=true) String userId) {
try {
@@ -742,6 +769,7 @@ public class SysUserController {
*/
// @RequestMapping(value = "/deleteUserRoleBatch", method = RequestMethod.DELETE)
@PostMapping("/deleteUserRoleBatch")
@RequiresPermissions("sys:user:sel")
public Results<SysUserRole> deleteUserRoleBatch(
@RequestParam(name="roleId") String roleId,
@RequestParam(name="userIds",required=true) String userIds) {
@@ -761,7 +789,7 @@ public class SysUserController {
*/
// @RequestMapping(value = "/departUserList", method = RequestMethod.GET)
@GetMapping("/departUserList")
//@RequiresPermissions("sys:user:list")
@RequiresPermissions("sys:user:list")
public Results<IPage<SysUser>> departUserList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) {
Results<IPage<SysUser>> result = new Results<>();
@@ -793,6 +821,9 @@ public class SysUserController {
item.setOrgCode(useDepNames.get(item.getId()))
);
}
pageList.getRecords().forEach(user -> {
sysUserService.proceedDecrypt(user);
});
result.setSuccess(true);
result.setResult(pageList);
}else{
@@ -808,7 +839,7 @@ public class SysUserController {
* 若某个用户包含多个部门,则会显示多条记录,可自行处理成单条记录
*/
@GetMapping("/queryByOrgCode")
//@RequiresPermissions("sys:user:list")
@RequiresPermissions("sys:user:list")
public Results<IPage<SysUserSysDepartModel>> queryByDepartId(
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@@ -854,6 +885,7 @@ public class SysUserController {
*/
// @RequestMapping(value = "/deleteUserInDepart", method = RequestMethod.DELETE)
@PostMapping("/deleteUserInDepart")
@RequiresPermissions("sys:user:sel")
public Results<Object> deleteUserInDepart(@RequestParam(name="depId") String depId,
@RequestParam(name="userId",required=true) String userId) {
try {
@@ -874,6 +906,7 @@ public class SysUserController {
// @RequestMapping(value = "/deleteUserInDepartBatch", method = RequestMethod.DELETE)
@PostMapping("/deleteUserInDepartBatch")
@Transactional
@RequiresPermissions("sys:user:sel")
public Results<Object> deleteUserInDepartBatch(
@RequestParam(name="depId") String depId,
@RequestParam(name="userIds",required=true) String userIds) {
@@ -897,7 +930,7 @@ public class SysUserController {
* 查询当前用户的所有部门/当前部门编码
* @return
*/
//@RequiresPermissions("sys:user:list")
@RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/getCurrentUserDeparts", method = RequestMethod.GET)
@GetMapping("/getCurrentUserDeparts")
public Results<Map<String,Object>> getCurrentUserDeparts() {
@@ -1110,7 +1143,7 @@ public class SysUserController {
* @param pageSize
* @return
*/
//@RequiresPermissions("sys:user:list")
@RequiresPermissions("sys:user:list")
@GetMapping("/appUserList")
public Results<IPage<SysUser>> appUserList(@RequestParam(name = "keyword", required = false) String keyword,
@RequestParam(name = USER_NAME, required = false) String username,
@@ -1147,7 +1180,7 @@ public class SysUserController {
*
* @return logicDeletedUserList
*/
//@RequiresPermissions("sys:user:list")
@RequiresPermissions("sys:user:list")
@GetMapping("/recycleBin")
public Results<List<SysUser>> getRecycleBin() {
List<SysUser> logicDeletedUserList = sysUserService.queryLogicDeleted();
@@ -1171,6 +1204,7 @@ public class SysUserController {
//@RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/putRecycleBin", method = RequestMethod.PUT)
@PostMapping("/putRecycleBin")
@RequiresPermissions("user:edit")
public Results<T> putRecycleBin(@RequestBody JSONObject jsonObject, HttpServletRequest request) {
String userIds = jsonObject.getString("userIds");
if (StringUtils.isNotBlank(userIds)) {
@@ -1190,6 +1224,7 @@ public class SysUserController {
*/
// @RequestMapping(value = "/deleteRecycleBin", method = RequestMethod.DELETE)
@PostMapping("/deleteRecycleBin")
@RequiresPermissions("sys:user:sel")
public Results<T> deleteRecycleBin(@RequestParam("userIds") String userIds) {
if (StringUtils.isNotBlank(userIds)) {
sysUserService.removeLogicDeleted(Arrays.asList(userIds.split(",")));
@@ -278,4 +278,18 @@ public interface ISysUserService extends IService<SysUser> {
/** userId转为username */
List<String> userIdToUsername(Collection<String> userIdList);
/**
* @Remarks: 根据id查询
**/
SysUser queryById(String id);
/**
* @Remarks: 对手机号、邮箱进行解密处理
**/
void proceedDecrypt(SysUser user);
/**
* @Remarks: 对手机号、邮箱进行加密处理
**/
void proceedEncrypt(SysUser user);
}
@@ -132,7 +132,8 @@ public class LoginServiceImpl implements ILoginService {
// 重试登录次数加一
retryCount++;
setRedis(username, retryCount);
String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试":"用户名或密码错误,剩余可登录次数:"+(RETRY_LOGIN_MAX_COUNT - retryCount);
//String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试":"用户名或密码错误,剩余可登录次数:"+(RETRY_LOGIN_MAX_COUNT - retryCount);
String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试":"用户名或密码错误";
return Results.error(msg);
}
//登录成功,清除错误登录次数
@@ -1,5 +1,6 @@
package com.jero.modules.system.service.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Results;
import com.jero.common.constant.CacheConstant;
import com.jero.common.constant.CommonConstant;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.system.vo.SysUserCacheInfo;
@@ -23,6 +25,7 @@ import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.vo.SysUserDepNameVo;
import com.jero.modules.system.vo.SysUserRoleNameVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
@@ -64,7 +67,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
@Override
public IPage<SysUser> queryPage(Page<SysUser> page, List<String> subDepIds, String roleId, QueryWrapper<SysUser> queryWrapper){
return this.userMapper.queryPage(page, subDepIds, roleId, queryWrapper);
IPage<SysUser> sysUserIPage = this.userMapper.queryPage(page, subDepIds, roleId, queryWrapper);
sysUserIPage.getRecords().forEach(user -> {
// 对手机号、邮箱进行解密处理
proceedDecrypt(user);
});
return sysUserIPage;
}
@Override
@@ -376,7 +384,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
//情况1:根据用户信息查询,该用户不存在
if (sysUser == null) {
baseCommonService.addLog("用户登录失败,用户不存在!", CommonConstant.LOG_TYPE_1, null);
return Results.error("该用户不存在,请注册");
//return Results.error("该用户不存在,请注册");
return Results.error("用户名或密码错误");
}
//情况2:根据用户信息查询,该用户已注销
//update-begin---author:王帅 Date:20200601 forif条件永远为falsebug------------
@@ -458,6 +467,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
@Transactional(rollbackFor = Exception.class)
public void saveUser(SysUser user, String selectedRoles, String selectedDeparts) {
//step.1 保存用户
// 对手机号、邮箱进行加密处理
proceedEncrypt(user);
this.save(user);
//step.2 保存角色
if(oConvertUtils.isNotEmpty(selectedRoles)) {
@@ -477,11 +488,67 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
}
}
/**
* @Remarks: 对手机号、邮箱进行加密处理
**/
@Override
public void proceedEncrypt(SysUser user) {
if (user == null) {
return;
}
String email = user.getEmail();
String phone = user.getPhone();
if (StrUtil.isNotEmpty(email)){
// 对邮箱地址进行加密
email = PasswordUtil.encrypt(email);
user.setEmail(email);
}
if (StrUtil.isNotEmpty(phone)){
// 对手机号码进行加密
phone = PasswordUtil.encrypt(phone);
user.setPhone(phone);
}
}
/**
* @Remarks: 对手机号、邮箱进行解密处理
**/
@Override
public void proceedDecrypt(SysUser user) {
if (user == null) {
return;
}
String email = user.getEmail();
String phone = user.getPhone();
if (StrUtil.isNotEmpty(email)){
// 对邮箱地址进行解密
try {
email = PasswordUtil.decrypt(email);
} catch (Exception e) {
email = user.getEmail();
}
user.setEmail(email);
}
if (StrUtil.isNotEmpty(phone)){
// 对手机号码进行解密
try {
phone = PasswordUtil.decrypt(phone);
} catch (Exception e) {
phone = user.getPhone();
}
user.setPhone(phone);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
@CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
public void editUser(SysUser user, String roles, String departs) {
//step.1 修改用户基础信息
// 对手机号、邮箱进行加密处理
proceedEncrypt(user);
this.updateById(user);
//step.2 修改角色
//处理用户角色 先删后加
@@ -523,5 +590,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return userList.stream().map(SysUser::getUsername).collect(Collectors.toList());
}
@Override
public SysUser queryById(String id) {
SysUser user = getById(id);
// 对手机号、邮箱进行解密处理
proceedDecrypt(user);
return user;
}
}