fix(): 修复导包内容,菜单无法修改、mybatis-plus元字段插入

boot3.0
dongzeliang 2025-03-17 21:57:30 +08:00
parent 913527915d
commit d22b97e6f5
17 changed files with 49 additions and 85 deletions

View File

@ -0,0 +1,42 @@
package com.muyu.common.security.config;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.muyu.common.core.basic.SecurityBasic;
import lombok.AllArgsConstructor;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import java.util.Date;
/**
* myBatsPlus
* @author DongZeLiang
* @date 2025/03/02 22:24
*/
@AllArgsConstructor //全参注入
@ConditionalOnProperty(value = "mybatis-plus.meta.enabled", havingValue = "true")
public class SystemMetaObjectHandler implements MetaObjectHandler {
private final SecurityBasic securityBasic;
/**
*
* @param metaObject
*/
@Override
public void insertFill(MetaObject metaObject) {
this.strictInsertFill(metaObject, "createBy", String.class, securityBasic.getUsername());
this.strictInsertFill(metaObject,"createTime", Date.class,new Date());
}
/**
*
* @param metaObject
*/
@Override
public void updateFill(MetaObject metaObject) {
this.strictUpdateFill(metaObject, "updateBy", String.class, securityBasic.getUsername());
this.strictUpdateFill(metaObject,"updateTime", Date.class,new Date());
}
}

View File

@ -3,4 +3,5 @@ com.muyu.common.security.service.TokenService
com.muyu.common.security.aspect.PreAuthorizeAspect
com.muyu.common.security.aspect.InnerAuthAspect
com.muyu.common.security.handler.GlobalExceptionHandler
com.muyu.common.security.service.SecurityBasicImpl
com.muyu.common.security.service.SecurityBasicImpl
com.muyu.common.security.config.SystemMetaObjectHandler

View File

@ -9,7 +9,6 @@ import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.common.log.annotation.Log;
import com.muyu.common.log.enums.BusinessType;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.SysDictData;
import com.muyu.system.domain.model.SysDictDataAddModel;
import com.muyu.system.domain.model.SysDictDataPageQueryModel;
@ -106,7 +105,6 @@ public class SysDictDataController extends BaseController {
@Log(title = "字典数据", businessType = BusinessType.INSERT)
@PostMapping
public Result<String> add (@Validated @RequestBody SysDictDataAddReq sysDictDataAddReq) {
sysDictDataAddReq.setCreateBy(SecurityUtils.getUsername());
dictDataService.insertDictData(SysDictDataAddModel.buildAddModel(sysDictDataAddReq));
return Result.success();
}
@ -118,7 +116,6 @@ public class SysDictDataController extends BaseController {
@Log(title = "字典数据", businessType = BusinessType.UPDATE)
@PutMapping
public Result<String> edit (@Validated @RequestBody SysDictDataUpdReq sysDictDataUpdReq) {
sysDictDataUpdReq.setUpdateBy(SecurityUtils.getUsername());
dictDataService.updateDictData(SysDictDataUpdModel.buildUpdModel(sysDictDataUpdReq));
return Result.success();
}

View File

@ -7,7 +7,6 @@ import com.muyu.common.core.web.page.DataPageResp;
import com.muyu.common.log.annotation.Log;
import com.muyu.common.log.enums.BusinessType;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.SysDictType;
import com.muyu.system.domain.model.SysDictTypeAddModel;
import com.muyu.system.domain.model.SysDictTypePageQueryModel;
@ -77,7 +76,6 @@ public class SysDictTypeController extends BaseController {
if (!dictTypeService.checkDictTypeUnique(SysDictTypeAddModel.buildModel(sysDictTypeAddReq))) {
return error("新增字典'" + sysDictTypeAddReq.getDictName() + "'失败,字典类型已存在");
}
sysDictTypeAddReq.setCreateBy(SecurityUtils.getUsername());
dictTypeService.insertDictType(SysDictTypeAddModel.buildModel(sysDictTypeAddReq));
return Result.success();
}
@ -92,7 +90,6 @@ public class SysDictTypeController extends BaseController {
if (!dictTypeService.checkDictTypeUnique(SysDictTypeUpdModel.buildUpdModel(sysDictTypeUpdReq))) {
return error("修改字典'" + sysDictTypeUpdReq.getDictName() + "'失败,字典类型已存在");
}
sysDictTypeUpdReq.setUpdateBy(SecurityUtils.getUsername());
dictTypeService.updateDictType(SysDictTypeUpdModel.buildUpdModel(sysDictTypeUpdReq));
return Result.success();
}

View File

@ -98,7 +98,6 @@ public class SysMenuController extends BaseController {
return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败地址必须以http(s)://开头");
}
SysMenu menu = SysMenu.buildSysMenu(sysMenuAddReq);
menu.setCreateBy(SecurityUtils.getUsername());
menuService.insertMenu(SysMenuAddModel.of(sysMenuAddReq));
return Result.success();
}
@ -116,9 +115,6 @@ public class SysMenuController extends BaseController {
} else if (UserConstants.YES_FRAME.equals(sysMenuAddModel.getIsFrame()) && !StringUtils.ishttp(sysMenuAddModel.getPath())) {
return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败地址必须以http(s)://开头");
}
SysMenu menu = SysMenu.buildSysMenu(sysMenuAddModel);
menu.setCreateBy(SecurityUtils.getUsername());
menu.setUpdateBy(SecurityUtils.getUsername());
menuService.updateMenu(SysMenuUpdModel.of(sysMenuUpdReq));
return Result.success();
}

View File

@ -8,7 +8,6 @@ import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.common.log.annotation.Log;
import com.muyu.common.log.enums.BusinessType;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.system.domain.SysPost;
import com.muyu.system.domain.model.SysPostEditModel;
import com.muyu.system.domain.model.SysPostListModel;
@ -79,7 +78,6 @@ public class SysPostController extends BaseController {
} else if (!postService.checkPostCodeUnique(SysPostSaveModel.saveBuild(sysPostSaveReq))) {
return error("新增岗位'" + sysPostSaveReq.getPostName() + "'失败,岗位编码已存在");
}
sysPostSaveReq.setCreateBy(SecurityUtils.getUsername());
postService.insertPost(SysPost.saveBuild(SysPostSaveModel.saveBuild(sysPostSaveReq)));
return Result.success();
}
@ -96,7 +94,6 @@ public class SysPostController extends BaseController {
} else if (!postService.checkEditPostCodeUnique(SysPostEditModel.editBuild(sysPostEditReq))) {
return error("修改岗位'" + sysPostEditReq.getPostName() + "'失败,岗位编码已存在");
}
sysPostEditReq.setUpdateBy(SecurityUtils.getUsername());
postService.updatePost(SysPost.editBuild(SysPostEditModel.editBuild(sysPostEditReq)));
return Result.success();
}

View File

@ -7,7 +7,6 @@ import com.muyu.common.core.web.page.DataPageResp;
import com.muyu.common.log.annotation.Log;
import com.muyu.common.log.enums.BusinessType;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.SysRole;
import com.muyu.common.system.domain.SysUser;
import com.muyu.system.domain.SysUserRole;
@ -77,7 +76,6 @@ public class SysRoleController extends BaseController {
} else if (!roleService.checkRoleKeyUnique(role)) {
return error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
}
role.setCreateBy(SecurityUtils.getUsername());
return toAjax(roleService.insertRole(role));
}
@ -96,7 +94,6 @@ public class SysRoleController extends BaseController {
} else if (!roleService.checkRoleKeyUnique(role)) {
return error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
}
role.setUpdateBy(SecurityUtils.getUsername());
return toAjax(roleService.updateRole(role));
}
@ -122,7 +119,6 @@ public class SysRoleController extends BaseController {
public Result<String> changeStatus (@RequestBody SysRole role) {
roleService.checkRoleAllowed(role);
roleService.checkRoleDataScope(role.getRoleId());
role.setUpdateBy(SecurityUtils.getUsername());
roleService.updateRoleStatus(role);
return Result.success();
}

View File

@ -187,7 +187,6 @@ public class SysUserController extends BaseController {
} else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) {
return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
}
user.setCreateBy(SecurityUtils.getUsername());
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
userService.insertUser(user);
return Result.success();
@ -209,7 +208,6 @@ public class SysUserController extends BaseController {
} else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) {
return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
}
user.setUpdateBy(SecurityUtils.getUsername());
userService.updateUser(user);
return Result.success();
}
@ -238,7 +236,6 @@ public class SysUserController extends BaseController {
userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId());
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
user.setUpdateBy(SecurityUtils.getUsername());
userService.resetPwd(user);
return Result.success();
}
@ -252,7 +249,6 @@ public class SysUserController extends BaseController {
public Result<String> changeStatus (@RequestBody SysUser user) {
userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId());
user.setUpdateBy(SecurityUtils.getUsername());
userService.updateUserStatus(user);
return Result.success();
}

View File

@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.annotation.Excel.ColumnType;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.system.domain.rep.SysConfigAddReq;
import com.muyu.system.domain.rep.SysConfigUpdReq;
import jakarta.validation.constraints.NotBlank;
@ -92,7 +91,6 @@ public class SysConfig extends BaseEntity {
.configValue(addReq.getConfigValue())
.configType(addReq.getConfigType())
.remark(addReq.getRemark())
.createBy(SecurityUtils.getUsername())
.build();
}
/**
@ -108,7 +106,6 @@ public class SysConfig extends BaseEntity {
.configValue(updReq.getConfigValue())
.configType(updReq.getConfigType())
.remark(updReq.getRemark())
.updateBy(SecurityUtils.getUsername())
.build();
}
}

View File

@ -225,6 +225,7 @@ public class SysMenu extends BaseEntity {
public static SysMenu buildSysMenu(SysMenuAddModel sysMenuAddModel) {
return SysMenu.builder()
.menuId(sysMenuAddModel.getMenuId())
.menuName(sysMenuAddModel.getMenuName())
.parentId(sysMenuAddModel.getParentId())
.orderNum(sysMenuAddModel.getOrderNum())

View File

@ -118,6 +118,7 @@ public class SysMenuAddModel {
public static SysMenuAddModel buildSysMenuAddModel(SysMenuUpdReq sysMenuUpdReq){
return SysMenuAddModel.builder()
.menuId(sysMenuUpdReq.getMenuId())
.menuName(sysMenuUpdReq.getMenuName())
.parentId(sysMenuUpdReq.getParentId())
.orderNum(sysMenuUpdReq.getOrderNum())

View File

@ -98,6 +98,7 @@ public class SysMenuUpdModel {
public static SysMenuUpdModel of(SysMenuUpdReq sysMenuUpdReq) {
return SysMenuUpdModel.builder()
.menuId(sysMenuUpdReq.getMenuId())
.menuName(sysMenuUpdReq.getMenuName())
.parentId(sysMenuUpdReq.getParentId())
.orderNum(sysMenuUpdReq.getOrderNum())

View File

@ -1,7 +1,6 @@
package com.muyu.system.domain.rep;
import com.muyu.common.core.enums.SysDelFlagEnum;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.SysDept;
import lombok.AllArgsConstructor;
import lombok.Builder;
@ -66,7 +65,6 @@ public class SysDeptAddReq {
.status(this.status)
.leader(this.leader)
.parentId(this.parentId)
.createBy(SecurityUtils.getUsername())
.build();
}

View File

@ -1,6 +1,5 @@
package com.muyu.system.domain.rep;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.SysDept;
import lombok.AllArgsConstructor;
import lombok.Builder;
@ -64,7 +63,6 @@ public class SysDeptUpdReq {
.status(this.status)
.leader(this.leader)
.parentId(this.parentId)
.updateBy(SecurityUtils.getUsername())
.build();
}
}

View File

@ -56,7 +56,6 @@ public class SysMenuUpdReq {
/**
*
*/
@NotBlank(message = "组件路径不能为空")
private String component;
/**

View File

@ -1,52 +0,0 @@
//package com.muyu.system.rabbit;
//
//import com.alibaba.fastjson2.JSONObject;
//import com.muyu.system.domain.SysConfig;
//import jakarta.annotation.PostConstruct;
//import lombok.extern.log4j.Log4j2;
//import org.springframework.amqp.core.Queue;
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
//import org.springframework.amqp.rabbit.core.RabbitTemplate;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Bean;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
//@Log4j2
//@RestController
//@RequestMapping("/rabbit/test")
//public class RabbitTest {
//
// @Autowired
// private RabbitTemplate rabbitTemplate;
//
// @Bean
// public Queue initQueue(){
// return new Queue("rabbit.test.init");
// }
//
// @RabbitListener(queues = "rabbit.test.init")
// public void msg(SysConfig sysConfig){
// log.info("消息队列:[{}], 消息内容:[{}]", "rabbit.test.init", JSONObject.toJSONString(sysConfig));
// }
//
// @PostConstruct
// public void init(){
// new Thread(() -> {
// try {
// Thread.sleep(5000);
// } catch (InterruptedException e) {
// throw new RuntimeException(e);
// }
// SysConfig sysConfig = SysConfig.builder()
// .configId(1L)
// .configKey("ceshi-key")
// .configName("测试名称")
// .configType("测试类型")
// .configValue("测试值")
// .build();
// rabbitTemplate.convertAndSend("rabbit.test.init",sysConfig);
// }).start();
// }
//
//}

View File

@ -351,10 +351,9 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*/
@Override
public boolean checkMenuNameUnique (SysMenuAddModel sysMenuAddModel) {
SysMenu menu = SysMenu.buildSysMenu(sysMenuAddModel);
LambdaQueryWrapper<SysMenu> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SysMenu::getMenuName, menu.getMenuName());
lambdaQueryWrapper.ne(menu.getMenuId() != null, SysMenu::getParentId, menu.getParentId());
lambdaQueryWrapper.eq(SysMenu::getMenuName, sysMenuAddModel.getMenuName());
lambdaQueryWrapper.ne(sysMenuAddModel.getMenuId() != null, SysMenu::getParentId, sysMenuAddModel.getParentId());
if (this.count(lambdaQueryWrapper) > 0) {
return UserConstants.NOT_UNIQUE;
}