Merge remote-tracking branch 'origin/boot3.0' into boot3.0

boot3.0
zyf972 2025-02-25 00:22:27 +08:00
commit ba51301f0b
59 changed files with 3144 additions and 192 deletions

View File

@ -34,4 +34,7 @@ public class DataPageResp<T> implements Serializable {
public static <T> DataPageResp<T> of(PageQueryModel<T> pageQueryModel) {
return new DataPageResp<>(pageQueryModel.getTotal(), pageQueryModel.getDataList());
}
public static <T> DataPageResp<T> of(Long total, List<T> rows) {
return new DataPageResp<>(total,rows);
}
}

View File

@ -36,4 +36,13 @@ public class PageQueryModel<T> {
public static <T> PageQueryModel<T> of(Page<T> page) {
return new PageQueryModel<>(page.getTotal(), page.getRecords());
}
/**
*
* @param total,list
* @return
* @param <T>
*/
public static <T> PageQueryModel<T> of(Long total,List<T> list) {
return new PageQueryModel<>(total, list);
}
}

View File

@ -102,4 +102,5 @@ public class SysDictData extends BaseEntity {
public boolean getDefault () {
return SysWhetherEnum.isYes(this.isDefault);
}
}

View File

@ -3,10 +3,8 @@ package com.muyu.common.system.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.annotation.Excel.ColumnType;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
@ -57,7 +55,8 @@ public class SysLogininfor {
/**
* 访
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date accessTime;
}

View File

@ -1,8 +1,8 @@
package com.muyu.common.system.remote.factory;
import com.muyu.common.core.domain.Result;
import com.muyu.common.system.remote.RemoteLogService;
import com.muyu.common.system.domain.SysLogininfor;
import com.muyu.common.system.remote.RemoteLogService;
import com.muyu.common.system.domain.SysOperLog;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -11,8 +11,13 @@ 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;
import com.muyu.system.domain.model.SysDictDataUpdModel;
import com.muyu.system.domain.rep.SysDictDataAddReq;
import com.muyu.system.domain.rep.SysDictDataListReq;
import com.muyu.system.domain.rep.SysDictDataUpdReq;
import com.muyu.system.domain.resp.SysDictDataListResp;
import com.muyu.system.service.SysDictDataService;
import com.muyu.system.service.SysDictTypeService;
import jakarta.servlet.http.HttpServletResponse;
@ -22,6 +27,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
*
@ -37,15 +43,31 @@ public class SysDictDataController extends BaseController {
@Autowired
private SysDictTypeService dictTypeService;
/**
*
* @param sysDictDataListReq
* @return
*/
@RequiresPermissions("system:dict:list")
@PostMapping("/list")
public Result<DataPageResp<SysDictData>> list (@RequestBody SysDictDataListReq sysDictDataListReq) {
PageQueryModel<SysDictData> sysDictDataPageQueryModel = dictDataService.selectDictDataList(SysDictDataPageQueryModel.reqBuild(sysDictDataListReq));
public Result<DataPageResp<SysDictDataListResp>> list (@RequestBody SysDictDataListReq sysDictDataListReq) {
List<SysDictData> sysDictDataList = dictDataService.selectDictDataList(SysDictDataPageQueryModel.reqBuild(sysDictDataListReq)).getDataList();
List<SysDictDataListResp> sysDictDataListRespList = sysDictDataList.stream().map(
sysDictData -> SysDictDataListResp.buildResp(sysDictData)
).distinct().collect(Collectors.toList());
PageQueryModel<SysDictDataListResp> sysDictDataListRespPageQueryModel = new PageQueryModel<>();
sysDictDataListRespPageQueryModel.setTotal(sysDictDataListRespList.size());
sysDictDataListRespPageQueryModel.setDataList(sysDictDataListRespList);
return Result.success(
DataPageResp.of(sysDictDataPageQueryModel)
DataPageResp.of(sysDictDataListRespPageQueryModel)
);
}
/**
*
* @param response
* @param sysDictDataListReq
*/
@Log(title = "字典数据", businessType = BusinessType.EXPORT)
@RequiresPermissions("system:dict:export")
@PostMapping("/export")
@ -83,21 +105,21 @@ public class SysDictDataController extends BaseController {
@RequiresPermissions("system:dict:add")
@Log(title = "字典数据", businessType = BusinessType.INSERT)
@PostMapping
public Result<String> add (@Validated @RequestBody SysDictData dict) {
dict.setCreateBy(SecurityUtils.getUsername());
dictDataService.insertDictData(dict);
public Result<String> add (@Validated @RequestBody SysDictDataAddReq sysDictDataAddReq) {
sysDictDataAddReq.setCreateBy(SecurityUtils.getUsername());
dictDataService.insertDictData(SysDictDataAddModel.buildAddModel(sysDictDataAddReq));
return Result.success();
}
/**
*
*/
@RequiresPermissions("system:dict:edit")
//@RequiresPermissions("system:dict:edit")
@Log(title = "字典数据", businessType = BusinessType.UPDATE)
@PutMapping
public Result<String> edit (@Validated @RequestBody SysDictData dict) {
dict.setUpdateBy(SecurityUtils.getUsername());
dictDataService.updateDictData(dict);
public Result<String> edit (@Validated @RequestBody SysDictDataUpdReq sysDictDataUpdReq) {
sysDictDataUpdReq.setUpdateBy(SecurityUtils.getUsername());
dictDataService.updateDictData(SysDictDataUpdModel.buildUpdModel(sysDictDataUpdReq));
return Result.success();
}

View File

@ -9,6 +9,14 @@ 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.SysDictTypeListModel;
import com.muyu.system.domain.model.SysDictTypePageQueryModel;
import com.muyu.system.domain.model.SysDictTypeUpdModel;
import com.muyu.system.domain.rep.SysDictTypeAddReq;
import com.muyu.system.domain.rep.SysDictTypeListReq;
import com.muyu.system.domain.rep.SysDictTypeUpdReq;
import com.muyu.system.domain.resp.SysDictTypeListResp;
import com.muyu.system.service.SysDictTypeService;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
@ -16,6 +24,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.stream.Collectors;
/**
*
@ -30,18 +39,24 @@ public class SysDictTypeController extends BaseController {
@RequiresPermissions("system:dict:list")
@PostMapping("/list")
public Result<DataPageResp<SysDictType>> list (@RequestBody SysDictType dictType) {
List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
return Result.success(new DataPageResp<>(0,list));
public Result<DataPageResp<SysDictTypeListResp>> list (@RequestBody SysDictTypeListReq sysDictTypeListReq) {
List<SysDictTypeListResp> dictTypeListResps = dictTypeService.selectDictTypeList(SysDictTypePageQueryModel.reqBuild(sysDictTypeListReq))
.stream()
.map(SysDictTypeListResp::buildResp)
.collect(Collectors.toList());
return Result.success(new DataPageResp<>(dictTypeListResps.size(), dictTypeListResps));
}
@Log(title = "字典类型", businessType = BusinessType.EXPORT)
@RequiresPermissions("system:dict:export")
@PostMapping("/export")
public void export (HttpServletResponse response, SysDictType dictType) {
List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
ExcelUtil<SysDictType> util = new ExcelUtil<SysDictType>(SysDictType.class);
util.exportExcel(response, list, "字典类型");
public void export (HttpServletResponse response, SysDictTypeListReq sysDictTypeListReq) {
List<SysDictTypeListResp> dictTypeListResps = dictTypeService.selectDictTypeList(SysDictTypePageQueryModel.reqBuild(sysDictTypeListReq))
.stream()
.map(SysDictTypeListResp::buildResp)
.collect(Collectors.toList());
ExcelUtil<SysDictTypeListResp> util = new ExcelUtil<SysDictTypeListResp>(SysDictTypeListResp.class);
util.exportExcel(response, dictTypeListResps, "字典类型");
}
/**
@ -59,12 +74,12 @@ public class SysDictTypeController extends BaseController {
@RequiresPermissions("system:dict:add")
@Log(title = "字典类型", businessType = BusinessType.INSERT)
@PostMapping
public Result add (@Validated @RequestBody SysDictType dict) {
if (!dictTypeService.checkDictTypeUnique(dict)) {
return error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在");
public Result add (@Validated @RequestBody SysDictTypeAddReq sysDictTypeAddReq) {
if (!dictTypeService.checkDictTypeUnique(SysDictTypeAddModel.buildModel(sysDictTypeAddReq))) {
return error("新增字典'" + sysDictTypeAddReq.getDictName() + "'失败,字典类型已存在");
}
dict.setCreateBy(SecurityUtils.getUsername());
dictTypeService.insertDictType(dict);
sysDictTypeAddReq.setCreateBy(SecurityUtils.getUsername());
dictTypeService.insertDictType(SysDictTypeAddModel.buildModel(sysDictTypeAddReq));
return Result.success();
}
@ -74,12 +89,12 @@ public class SysDictTypeController extends BaseController {
@RequiresPermissions("system:dict:edit")
@Log(title = "字典类型", businessType = BusinessType.UPDATE)
@PutMapping
public Result edit (@Validated @RequestBody SysDictType dict) {
if (!dictTypeService.checkDictTypeUnique(dict)) {
return error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在");
public Result edit (@Validated @RequestBody SysDictTypeUpdReq sysDictTypeUpdReq) {
if (!dictTypeService.checkDictTypeUnique(SysDictTypeUpdModel.buildUpdModel(sysDictTypeUpdReq))) {
return error("修改字典'" + sysDictTypeUpdReq.getDictName() + "'失败,字典类型已存在");
}
dict.setUpdateBy(SecurityUtils.getUsername());
dictTypeService.updateDictType(dict);
sysDictTypeUpdReq.setUpdateBy(SecurityUtils.getUsername());
dictTypeService.updateDictType(SysDictTypeUpdModel.buildUpdModel(sysDictTypeUpdReq));
return Result.success();
}

View File

@ -12,9 +12,12 @@ import com.muyu.common.redis.service.RedisService;
import com.muyu.common.security.annotation.InnerAuth;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.common.system.domain.SysLogininfor;
import com.muyu.system.domain.model.SysLogininforAddModel;
import com.muyu.system.domain.model.SysLogininforExportModel;
import com.muyu.system.domain.model.SysLogininforListModel;
import com.muyu.system.domain.rep.SysLogininforAddReq;
import com.muyu.system.domain.rep.SysLogininforListReq;
import com.muyu.system.domain.resp.SysLogininforListResp;
import com.muyu.system.service.SysLogininforService;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
@ -38,10 +41,17 @@ public class SysLogininforController extends BaseController {
@RequiresPermissions("system:logininfor:list")
@PostMapping("/list")
public Result<DataPageResp<SysLogininfor>> list (@RequestBody SysLogininforListReq sysLogininforListReq) {
PageQueryModel<SysLogininfor> pageQueryModel = logininforService.pageQuery(SysLogininforListModel.reqBuild(sysLogininforListReq));
public Result<DataPageResp<SysLogininforListResp>> list (@RequestBody SysLogininforListReq sysLogininforListReq) {
PageQueryModel<SysLogininforListModel> pageQueryModel = logininforService.pageQuery(SysLogininforListModel.reqBuild(sysLogininforListReq));
DataPageResp<SysLogininforListModel> sysLogininforListModelDataPageResp = DataPageResp.of(pageQueryModel);
return Result.success(
DataPageResp.of(pageQueryModel)
DataPageResp.<SysLogininforListResp>builder()
.rows(sysLogininforListModelDataPageResp.getRows()
.stream()
.map(SysLogininforListResp::buildSysLogininforResp)
.toList())
.total(sysLogininforListModelDataPageResp.getTotal())
.build()
);
}
@ -78,10 +88,10 @@ public class SysLogininforController extends BaseController {
return success();
}
@InnerAuth
/*@InnerAuth*/
@PostMapping
public Result add (@RequestBody SysLogininfor logininfor) {
logininforService.insertLogininfor(logininfor);
public Result add (@RequestBody SysLogininforAddReq logininforAddReq) {
logininforService.insertLogininfor(SysLogininforAddModel.of(logininforAddReq));
return Result.success();
}
}

View File

@ -9,7 +9,14 @@ 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.SysMenu;
import com.muyu.system.domain.model.SysMenuAddModel;
import com.muyu.system.domain.model.SysMenuListModel;
import com.muyu.system.domain.model.SysMenuUpdModel;
import com.muyu.system.domain.rep.SysMenuAddReq;
import com.muyu.system.domain.rep.SysMenuListReq;
import com.muyu.system.domain.rep.SysMenuUpdReq;
import com.muyu.system.domain.resp.RoleMenuTreeResp;
import com.muyu.system.domain.resp.SysMenuListResp;
import com.muyu.system.service.SysMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@ -33,10 +40,12 @@ public class SysMenuController extends BaseController {
*/
@RequiresPermissions("system:menu:list")
@PostMapping("/list")
public Result list (@RequestBody SysMenu menu) {
public Result<List<SysMenuListResp>> list (@RequestBody SysMenuListReq sysMenuListReq) {
Long userId = SecurityUtils.getUserId();
List<SysMenu> menus = menuService.selectMenuList(menu, userId);
return success(menus);
List<SysMenuListModel> menus = menuService.selectMenuList(SysMenuListModel.of(sysMenuListReq), userId);
return success(menus.stream()
.map(SysMenuListResp::buildSysMenuListResp)
.toList());
}
/**
@ -52,10 +61,10 @@ public class SysMenuController extends BaseController {
*
*/
@GetMapping("/treeselect")
public Result treeselect (SysMenu menu) {
public Result treeselect (SysMenuListReq sysMenuListReq) {
Long userId = SecurityUtils.getUserId();
List<SysMenu> menus = menuService.selectMenuList(menu, userId);
return success(menuService.buildMenuTreeSelect(menus));
List<SysMenuListModel> sysMenus = menuService.selectMenuList(SysMenuListModel.of(sysMenuListReq), userId);
return success(menuService.buildMenuTreeSelect(sysMenus));
}
/**
@ -64,7 +73,7 @@ public class SysMenuController extends BaseController {
@GetMapping(value = "/roleMenuTreeselect/{roleId}")
public Result roleMenuTreeselect (@PathVariable("roleId") Long roleId) {
Long userId = SecurityUtils.getUserId();
List<SysMenu> menus = menuService.selectMenuList(userId);
List<SysMenuListModel> menus = menuService.selectMenuList(userId);
return Result.success(
RoleMenuTreeResp.builder()
.menus(menuService.buildMenuTreeSelect(menus))
@ -79,14 +88,16 @@ public class SysMenuController extends BaseController {
@RequiresPermissions("system:menu:add")
@Log(title = "菜单管理", businessType = BusinessType.INSERT)
@PostMapping
public Result add (@Validated @RequestBody SysMenu menu) {
if (!menuService.checkMenuNameUnique(menu)) {
return error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
} else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) {
return error("新增菜单'" + menu.getMenuName() + "'失败地址必须以http(s)://开头");
public Result add (@Validated @RequestBody SysMenuAddReq sysMenuAddReq) {
SysMenuAddModel sysMenuAddModel = SysMenuAddModel.of(sysMenuAddReq);
if (!menuService.checkMenuNameUnique(sysMenuAddModel)) {
return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,菜单名称已存在");
} else if (UserConstants.YES_FRAME.equals(sysMenuAddModel.getIsFrame()) && !StringUtils.ishttp(sysMenuAddModel.getPath())) {
return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败地址必须以http(s)://开头");
}
SysMenu menu = SysMenu.buildSysMenu(sysMenuAddReq);
menu.setCreateBy(SecurityUtils.getUsername());
menuService.insertMenu(menu);
menuService.insertMenu(SysMenuAddModel.of(sysMenuAddReq));
return Result.success();
}
@ -96,16 +107,17 @@ public class SysMenuController extends BaseController {
@RequiresPermissions("system:menu:edit")
@Log(title = "菜单管理", businessType = BusinessType.UPDATE)
@PutMapping
public Result edit (@Validated @RequestBody SysMenu menu) {
if (!menuService.checkMenuNameUnique(menu)) {
return error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
} else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) {
return error("修改菜单'" + menu.getMenuName() + "'失败地址必须以http(s)://开头");
} else if (menu.getMenuId().equals(menu.getParentId())) {
return error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己");
public Result edit (@Validated @RequestBody SysMenuUpdReq sysMenuUpdReq) {
SysMenuAddModel sysMenuAddModel = SysMenuAddModel.buildSysMenuAddModel(sysMenuUpdReq);
if (!menuService.checkMenuNameUnique(sysMenuAddModel)) {
return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,菜单名称已存在");
} 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(menu);
menuService.updateMenu(SysMenuUpdModel.of(sysMenuUpdReq));
return Result.success();
}

View File

@ -10,8 +10,12 @@ 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.SysPostPageQueryModel;
import com.muyu.system.domain.model.*;
import com.muyu.system.domain.rep.SysPostEditReq;
import com.muyu.system.domain.rep.SysPostListReq;
import com.muyu.system.domain.rep.SysPostSaveReq;
import com.muyu.system.domain.resp.SysPostListResp;
import com.muyu.system.domain.resp.SysPostMyInfoResp;
import com.muyu.system.service.SysPostService;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
@ -36,11 +40,9 @@ public class SysPostController extends BaseController {
*/
@RequiresPermissions("system:post:list")
@PostMapping("/list")
public Result<DataPageResp<SysPost>> list (@RequestBody SysPostListReq postListReq) {
PageQueryModel<SysPost> sysPostPageQueryModel = postService.pageQuery(
SysPostPageQueryModel.reqBuild(postListReq)
);
return Result.success(DataPageResp.of(sysPostPageQueryModel));
public Result<DataPageResp<SysPostListResp>> list (@RequestBody SysPostListReq postListReq) {
PageQueryModel<SysPostListModel> sysPostPageQueryModel = postService.getList(SysPostPageQueryModel.reqBuild(postListReq));
return Result.success(DataPageResp.of(sysPostPageQueryModel.getTotal(),sysPostPageQueryModel.getDataList().stream().map(SysPostListResp::listBuild).toList()));
}
@Log(title = "岗位管理", businessType = BusinessType.EXPORT)
@ -48,11 +50,9 @@ public class SysPostController extends BaseController {
@PostMapping("/export")
public void export (HttpServletResponse response, SysPostListReq postListReq) {
// TODO 导出重写
PageQueryModel<SysPost> sysPostPageQueryModel = postService.pageQuery(
SysPostPageQueryModel.reqBuild(postListReq)
);
ExcelUtil<SysPost> util = new ExcelUtil<SysPost>(SysPost.class);
util.exportExcel(response, sysPostPageQueryModel.getDataList(), "岗位数据");
PageQueryModel<SysPostListModel> sysPostPageQueryModel = postService.getList(SysPostPageQueryModel.reqBuild(postListReq));
ExcelUtil<SysPostListResp> util = new ExcelUtil<SysPostListResp>(SysPostListResp.class);
util.exportExcel(response, sysPostPageQueryModel.getDataList().stream().map(SysPostListResp::listBuild).toList(), "岗位数据");
}
/**
@ -60,8 +60,8 @@ public class SysPostController extends BaseController {
*/
@RequiresPermissions("system:post:query")
@GetMapping(value = "/{postId}")
public Result<SysPost> getInfo (@PathVariable("postId") Long postId) {
return success(postService.selectPostById(postId));
public Result<SysPostMyInfoResp> getInfo (@PathVariable("postId") Long postId) {
return success(SysPostMyInfoResp.messageBuild(postService.selectPostById(postId)));
}
/**
@ -70,14 +70,14 @@ public class SysPostController extends BaseController {
@RequiresPermissions("system:post:add")
@Log(title = "岗位管理", businessType = BusinessType.INSERT)
@PostMapping
public Result<String> add (@Validated @RequestBody SysPost post) {
if (!postService.checkPostNameUnique(post)) {
return error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在");
} else if (!postService.checkPostCodeUnique(post)) {
return error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在");
public Result<String> add (@Validated @RequestBody SysPostSaveReq sysPostSaveReq) {
if (!postService.checkPostNameUnique(SysPostSaveModel.saveBuild(sysPostSaveReq))) {
return error("新增岗位'" + sysPostSaveReq.getPostName() + "'失败,岗位名称已存在");
} else if (!postService.checkPostCodeUnique(SysPostSaveModel.saveBuild(sysPostSaveReq))) {
return error("新增岗位'" + sysPostSaveReq.getPostName() + "'失败,岗位编码已存在");
}
post.setCreateBy(SecurityUtils.getUsername());
postService.insertPost(post);
sysPostSaveReq.setCreateBy(SecurityUtils.getUsername());
postService.insertPost(SysPost.saveBuild(SysPostSaveModel.saveBuild(sysPostSaveReq)));
return Result.success();
}
@ -87,14 +87,14 @@ public class SysPostController extends BaseController {
@RequiresPermissions("system:post:edit")
@Log(title = "岗位管理", businessType = BusinessType.UPDATE)
@PutMapping
public Result<String> edit (@Validated @RequestBody SysPost post) {
if (!postService.checkPostNameUnique(post)) {
return error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在");
} else if (!postService.checkPostCodeUnique(post)) {
return error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在");
public Result<String> edit (@Validated @RequestBody SysPostEditReq sysPostEditReq) {
if (!postService.checkEditPostNameUnique(SysPostEditModel.editBuild(sysPostEditReq))) {
return error("修改岗位'" + sysPostEditReq.getPostName() + "'失败,岗位名称已存在");
} else if (!postService.checkEditPostCodeUnique(SysPostEditModel.editBuild(sysPostEditReq))) {
return error("修改岗位'" + sysPostEditReq.getPostName() + "'失败,岗位编码已存在");
}
post.setUpdateBy(SecurityUtils.getUsername());
postService.updatePost(post);
sysPostEditReq.setUpdateBy(SecurityUtils.getUsername());
postService.updatePost(SysPost.editBuild(SysPostEditModel.editBuild(sysPostEditReq)));
return Result.success();
}

View File

@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.system.domain.model.SysMenuAddModel;
import com.muyu.system.domain.model.SysMenuListModel;
import com.muyu.system.domain.model.SysMenuUpdModel;
import com.muyu.system.domain.rep.SysMenuAddReq;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
@ -122,6 +126,7 @@ public class SysMenu extends BaseEntity {
*
*/
@Builder.Default
@TableField(exist = false)
private List<SysMenu> children = new ArrayList<SysMenu>();
@NotBlank(message = "菜单名称不能为空")
@ -155,4 +160,106 @@ public class SysMenu extends BaseEntity {
return perms;
}
public static SysMenu of(SysMenuListModel sysMenuListModel) {
return SysMenu.builder()
.menuId(sysMenuListModel.getMenuId())
.menuName(sysMenuListModel.getMenuName())
.parentName(sysMenuListModel.getParentName())
.parentId(sysMenuListModel.getParentId())
.orderNum(sysMenuListModel.getOrderNum())
.path(sysMenuListModel.getPath())
.component(sysMenuListModel.getComponent())
.query(sysMenuListModel.getQuery())
.isFrame(sysMenuListModel.getIsFrame())
.isCache(sysMenuListModel.getIsCache())
.menuType(sysMenuListModel.getMenuType())
.visible(sysMenuListModel.getVisible())
.status(sysMenuListModel.getStatus())
.perms(sysMenuListModel.getPerms())
.icon(sysMenuListModel.getIcon())
.children(sysMenuListModel.getChildren())
.build();
}
public static SysMenu buildSysMenu(SysMenuListModel sysMenuListModel) {
return SysMenu.builder()
.menuId(sysMenuListModel.getMenuId())
.menuName(sysMenuListModel.getMenuName())
.parentName(sysMenuListModel.getParentName())
.parentId(sysMenuListModel.getParentId())
.orderNum(sysMenuListModel.getOrderNum())
.path(sysMenuListModel.getPath())
.component(sysMenuListModel.getComponent())
.query(sysMenuListModel.getQuery())
.isFrame(sysMenuListModel.getIsFrame())
.isCache(sysMenuListModel.getIsCache())
.menuType(sysMenuListModel.getMenuType())
.visible(sysMenuListModel.getVisible())
.status(sysMenuListModel.getStatus())
.perms(sysMenuListModel.getPerms())
.icon(sysMenuListModel.getIcon())
.children(sysMenuListModel.getChildren())
.build();
}
public static SysMenu buildSysMenu(SysMenuAddReq sysMenuAddReq) {
return SysMenu.builder()
.menuId(sysMenuAddReq.getMenuId())
.menuName(sysMenuAddReq.getMenuName())
.parentName(sysMenuAddReq.getParentName())
.parentId(sysMenuAddReq.getParentId())
.orderNum(sysMenuAddReq.getOrderNum())
.path(sysMenuAddReq.getPath())
.component(sysMenuAddReq.getComponent())
.query(sysMenuAddReq.getQuery())
.isFrame(sysMenuAddReq.getIsFrame())
.isCache(sysMenuAddReq.getIsCache())
.menuType(sysMenuAddReq.getMenuType())
.visible(sysMenuAddReq.getVisible())
.status(sysMenuAddReq.getStatus())
.perms(sysMenuAddReq.getPerms())
.icon(sysMenuAddReq.getIcon())
.children(sysMenuAddReq.getChildren())
.build();
}
public static SysMenu buildSysMenu(SysMenuAddModel sysMenuAddModel) {
return SysMenu.builder()
.menuName(sysMenuAddModel.getMenuName())
.parentId(sysMenuAddModel.getParentId())
.orderNum(sysMenuAddModel.getOrderNum())
.path(sysMenuAddModel.getPath())
.component(sysMenuAddModel.getComponent())
.query(sysMenuAddModel.getQuery())
.isFrame(sysMenuAddModel.getIsFrame())
.isCache(sysMenuAddModel.getIsCache())
.menuType(sysMenuAddModel.getMenuType())
.visible(sysMenuAddModel.getVisible())
.status(sysMenuAddModel.getStatus())
.perms(sysMenuAddModel.getPerms())
.icon(sysMenuAddModel.getIcon())
.children(sysMenuAddModel.getChildren())
.build();
}
public static SysMenu buildSysMenu(SysMenuUpdModel sysMenuUpdModel) {
return SysMenu.builder()
.menuId(sysMenuUpdModel.getMenuId())
.menuName(sysMenuUpdModel.getMenuName())
.parentId(sysMenuUpdModel.getParentId())
.orderNum(sysMenuUpdModel.getOrderNum())
.path(sysMenuUpdModel.getPath())
.component(sysMenuUpdModel.getComponent())
.query(sysMenuUpdModel.getQuery())
.isFrame(sysMenuUpdModel.getIsFrame())
.isCache(sysMenuUpdModel.getIsCache())
.menuType(sysMenuUpdModel.getMenuType())
.visible(sysMenuUpdModel.getVisible())
.status(sysMenuUpdModel.getStatus())
.perms(sysMenuUpdModel.getPerms())
.icon(sysMenuUpdModel.getIcon())
.children(sysMenuUpdModel.getChildren())
.build();
}
}

View File

@ -6,11 +6,14 @@ 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.system.domain.model.SysPostEditModel;
import com.muyu.system.domain.model.SysPostSaveModel;
import com.muyu.system.domain.rep.SysPostSaveReq;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.*;
import lombok.experimental.SuperBuilder;
import lombok.experimental.SuperBuilder;import java.util.Date;
/**
* sys_post
@ -79,4 +82,31 @@ public class SysPost extends BaseEntity {
public Integer getPostSort () {
return postSort;
}
public static SysPost saveBuild(SysPostSaveModel sysPostSaveModel) {
return SysPost.builder()
.postId(sysPostSaveModel.getPostId())
.postCode(sysPostSaveModel.getPostCode())
.postName(sysPostSaveModel.getPostName())
.postSort(sysPostSaveModel.getPostSort())
.status(sysPostSaveModel.getStatus())
.flag(sysPostSaveModel.isFlag())
.createBy(sysPostSaveModel.getCreateBy())
.createTime(new Date())
.remark(sysPostSaveModel.getRemark())
.build();
}
public static SysPost editBuild(SysPostEditModel sysPostEditModel) {
return SysPost.builder()
.postId(sysPostEditModel.getPostId())
.postCode(sysPostEditModel.getPostCode())
.postName(sysPostEditModel.getPostName())
.postSort(sysPostEditModel.getPostSort())
.status(sysPostEditModel.getStatus())
.flag(sysPostEditModel.isFlag())
.updateBy(sysPostEditModel.getUpdateBy())
.updateTime(new Date())
.remark(sysPostEditModel.getRemark())
.build();
}
}

View File

@ -0,0 +1,85 @@
package com.muyu.system.domain.model;
import com.muyu.system.domain.rep.SysDictDataAddReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*
*
* @author
* @version 1.0
* @date 2025/2/23 19:29
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysDictDataAddModel {
/**
*
*/
private Long dictCode;
/**
*
*/
private Long dictSort;
/**
*
*/
private String dictLabel;
/**
*
*/
private String dictValue;
/**
*
*/
private String dictType;
/**
*
*/
private String cssClass;
/**
*
*/
private String listClass;
/**
* Y N
*/
private String isDefault;
/**
* 0 1
*/
private String status;
/**
*
*
* @param sysDictDataAddReq
* @return
*/
public static SysDictDataAddModel buildAddModel(SysDictDataAddReq sysDictDataAddReq) {
return SysDictDataAddModel.builder()
.dictCode(sysDictDataAddReq.getDictCode())
.dictSort(sysDictDataAddReq.getDictSort())
.dictLabel(sysDictDataAddReq.getDictLabel())
.dictValue(sysDictDataAddReq.getDictValue())
.dictType(sysDictDataAddReq.getDictType())
.cssClass(sysDictDataAddReq.getCssClass())
.listClass(sysDictDataAddReq.getListClass())
.isDefault(sysDictDataAddReq.getIsDefault())
.status(sysDictDataAddReq.getStatus())
.build();
}
}

View File

@ -0,0 +1,69 @@
package com.muyu.system.domain.model;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
*
* @author SunLY
* @version 1.0
* @date 2025/2/23 21:24
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysDictDataListModel extends BaseEntity {
/**
*
*/
@Excel(name = "字典编码", cellType = Excel.ColumnType.NUMERIC)
private Long dictCode;
/**
*
*/
@Excel(name = "字典排序", cellType = Excel.ColumnType.NUMERIC)
private Long dictSort;
/**
*
*/
@Excel(name = "字典标签")
private String dictLabel;
/**
*
*/
@Excel(name = "字典键值")
private String dictValue;
/**
*
*/
@Excel(name = "字典类型")
private String dictType;
/**
*
*/
private String cssClass;
/**
*
*/
private String listClass;
/**
* Y N
*/
@Excel(name = "是否默认", readConverterExp = "Y=是,N=否")
private String isDefault;
}

View File

@ -31,6 +31,9 @@ public class SysDictDataPageQueryModel extends QueryModel<SysDictDataPageQueryMo
*/
private String status;
public static SysDictDataPageQueryModel reqBuild(SysDictDataListReq sysDictDataListReq) {
SysDictDataPageQueryModel sysDictDataPageQueryModel = SysDictDataPageQueryModel.builder()
.dictType(sysDictDataListReq.getDictType())

View File

@ -0,0 +1,113 @@
package com.muyu.system.domain.model;
import com.muyu.common.core.enums.SysWhetherEnum;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.system.domain.rep.SysDictDataUpdReq;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
*
* @author SunLY
* @version 1.0
* @date 2025/2/23 19:29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysDictDataUpdModel extends BaseEntity {
/**
*
*/
private Long dictCode;
/**
*
*/
private Long dictSort;
/**
*
*/
private String dictLabel;
/**
*
*/
private String dictValue;
/**
*
*/
private String dictType;
/**
*
*/
private String cssClass;
/**
*
*/
private String listClass;
/**
* Y N
*/
private String isDefault;
/**
* 0 1
*/
private String status;
@NotBlank(message = "字典标签不能为空")
@Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符")
public String getDictLabel () {
return dictLabel;
}
@NotBlank(message = "字典键值不能为空")
@Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符")
public String getDictValue () {
return dictValue;
}
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
public String getDictType () {
return dictType;
}
@Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
public String getCssClass () {
return cssClass;
}
public boolean getDefault () {
return SysWhetherEnum.isYes(this.isDefault);
}
public static SysDictDataUpdModel buildUpdModel(SysDictDataUpdReq sysDictDataUpdReq){
return SysDictDataUpdModel.builder()
.dictCode(sysDictDataUpdReq.getDictCode())
.dictSort(sysDictDataUpdReq.getDictSort())
.dictLabel(sysDictDataUpdReq.getDictLabel())
.dictValue(sysDictDataUpdReq.getDictValue())
.dictType(sysDictDataUpdReq.getDictType())
.cssClass(sysDictDataUpdReq.getCssClass())
.listClass(sysDictDataUpdReq.getListClass())
.isDefault(sysDictDataUpdReq.getIsDefault())
.status(sysDictDataUpdReq.getStatus())
.build();
}
}

View File

@ -0,0 +1,58 @@
package com.muyu.system.domain.model;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.system.domain.rep.SysDictTypeAddReq;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
*
* @author
* @version 1.0
* @date 2025/2/24 1:35
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysDictTypeAddModel extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private Long dictId;
/**
*
*/
private String dictName;
/**
*
*/
private String dictType;
/**
* 0 1
*/
private String status;
public static SysDictTypeAddModel buildModel(SysDictTypeAddReq sysDictTypeAddReq){
return SysDictTypeAddModel.builder()
.dictId(sysDictTypeAddReq.getDictId())
.dictName(sysDictTypeAddReq.getDictName())
.dictType(sysDictTypeAddReq.getDictType())
.status(sysDictTypeAddReq.getStatus())
.build();
}
}

View File

@ -0,0 +1,59 @@
package com.muyu.system.domain.model;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.annotation.Excel.ColumnType;
import com.muyu.common.core.web.domain.BaseEntity;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
*
* @author
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysDictTypeListModel extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
@Excel(name = "字典主键", cellType = ColumnType.NUMERIC)
private Long dictId;
/**
*
*/
@Excel(name = "字典名称")
private String dictName;
/**
*
*/
@Excel(name = "字典类型")
private String dictType;
/**
* 0 1
*/
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
@NotBlank(message = "字典名称不能为空")
@Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
public String getDictName () {
return dictName;
}
}

View File

@ -1,5 +1,7 @@
package com.muyu.system.domain.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.muyu.common.core.web.model.QueryModel;
import com.muyu.system.domain.rep.SysDictTypeListReq;
import lombok.AllArgsConstructor;
@ -9,6 +11,8 @@ import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
*
@ -45,6 +49,24 @@ public class SysDictTypePageQueryModel extends QueryModel<SysDictTypePageQueryMo
*/
private Date endTime;
/**
*
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@TableField(exist = false)
private Map<String, Object> params;
public Map<String, Object> getParams () {
if (params == null) {
params = new HashMap<>();
}
return params;
}
public void setParams (Map<String, Object> params) {
this.params = params;
}
public static SysDictTypePageQueryModel reqBuild(SysDictTypeListReq sysDictTypeListReq) {
SysDictTypePageQueryModel sysDictTypePageQueryModel = SysDictTypePageQueryModel.builder()
.dictName(sysDictTypeListReq.getDictName())

View File

@ -0,0 +1,58 @@
package com.muyu.system.domain.model;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.system.domain.rep.SysDictTypeUpdReq;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
*
* @author
* @version 1.0
* @date 2025/2/24 1:35
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysDictTypeUpdModel extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private Long dictId;
/**
*
*/
private String dictName;
/**
*
*/
private String dictType;
/**
* 0 1
*/
private String status;
public static SysDictTypeUpdModel buildUpdModel(SysDictTypeUpdReq sysDictTypeUpdReq) {
return SysDictTypeUpdModel.builder()
.dictId(sysDictTypeUpdReq.getDictId())
.dictName(sysDictTypeUpdReq.getDictName())
.dictType(sysDictTypeUpdReq.getDictType())
.status(sysDictTypeUpdReq.getStatus())
.build();
}
}

View File

@ -0,0 +1,75 @@
package com.muyu.system.domain.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.system.domain.SysLogininfor;
import com.muyu.system.domain.rep.SysLogininforAddReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @description:
* @author yangchoashun
* @date 2025/2/23 17:24
* @version 1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysLogininforAddModel {
/**
* 访ID
*/
private Long infoId;
/**
*
*/
private String userName;
/**
* 0 1
*/
private String status;
/**
*
*/
private String ipaddr;
/**
*
*/
private String msg;
/**
* 访
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date accessTime;
public static SysLogininforAddModel of(SysLogininforAddReq sysLogininforAddReq) {
return SysLogininforAddModel.builder()
.infoId(sysLogininforAddReq.getInfoId())
.userName(sysLogininforAddReq.getUserName())
.status(sysLogininforAddReq.getStatus())
.ipaddr(sysLogininforAddReq.getIpaddr())
.msg(sysLogininforAddReq.getMsg())
.accessTime(sysLogininforAddReq.getAccessTime())
.build();
}
public static SysLogininfor of(SysLogininforAddModel sysLogininforAddModel) {
return SysLogininfor.builder()
.infoId(sysLogininforAddModel.getInfoId())
.userName(sysLogininforAddModel.getUserName())
.status(sysLogininforAddModel.getStatus())
.ipaddr(sysLogininforAddModel.getIpaddr())
.msg(sysLogininforAddModel.getMsg())
.accessTime(sysLogininforAddModel.getAccessTime())
.build();
}
}

View File

@ -1,6 +1,8 @@
package com.muyu.system.domain.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.web.model.QueryModel;
import com.muyu.common.system.domain.SysLogininfor;
import com.muyu.system.domain.rep.SysLogininforListReq;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -17,6 +19,10 @@ import java.util.Date;
@NoArgsConstructor
@AllArgsConstructor
public class SysLogininforListModel extends QueryModel<SysLogininforListModel> {
/**
* 访ID
*/
private Long infoId;
/**
* IP
*/
@ -42,6 +48,16 @@ public class SysLogininforListModel extends QueryModel<SysLogininforListModel> {
*/
private Date endTime;
/**
*
*/
private String msg;
/**
* 访
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date accessTime;
public static SysLogininforListModel reqBuild(SysLogininforListReq req){
return SysLogininforListModel.builder()
.ipaddr(req.getIpaddr())
@ -51,4 +67,14 @@ public class SysLogininforListModel extends QueryModel<SysLogininforListModel> {
.build()
.domainBuild(req);
}
public static SysLogininforListModel buildSysLogininforListModel(SysLogininfor sysLogininfor) {
return SysLogininforListModel.builder()
.ipaddr(sysLogininfor.getIpaddr())
.userName(sysLogininfor.getUserName())
.status(sysLogininfor.getStatus())
.msg(sysLogininfor.getMsg())
.accessTime(sysLogininfor.getAccessTime())
.build();
}
}

View File

@ -0,0 +1,140 @@
package com.muyu.system.domain.model;
import com.muyu.system.domain.SysMenu;
import com.muyu.system.domain.rep.SysMenuAddReq;
import com.muyu.system.domain.rep.SysMenuUpdReq;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author yangchoashun
* @date 2025/2/23 17:24
* @version 1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysMenuAddModel {
/**
* ID
*/
private Long menuId;
/**
*
*/
private String menuName;
/**
* ID
*/
private Long parentId;
/**
*
*/
private Integer orderNum;
/**
*
*/
private String path;
/**
*
*/
private String component;
/**
*
*/
private String query;
/**
* 0 1
*/
private String isFrame;
/**
* 0 1
*/
private String isCache;
/**
* M C F
*/
private String menuType;
/**
* 0 1
*/
private String visible;
/**
* 0 1
*/
private String status;
/**
*
*/
private String perms;
/**
*
*/
private String icon;
/**
*
*/
private List<SysMenu> children = new ArrayList<SysMenu>();
public static SysMenuAddModel of(SysMenuAddReq sysMenuAddReq) {
return SysMenuAddModel.builder()
.menuName(sysMenuAddReq.getMenuName())
.parentId(sysMenuAddReq.getParentId())
.orderNum(sysMenuAddReq.getOrderNum())
.path(sysMenuAddReq.getPath())
.component(sysMenuAddReq.getComponent())
.query(sysMenuAddReq.getQuery())
.isFrame(sysMenuAddReq.getIsFrame())
.isCache(sysMenuAddReq.getIsCache())
.menuType(sysMenuAddReq.getMenuType())
.visible(sysMenuAddReq.getVisible())
.status(sysMenuAddReq.getStatus())
.perms(sysMenuAddReq.getPerms())
.icon(sysMenuAddReq.getIcon())
.children(sysMenuAddReq.getChildren())
.build();
}
public static SysMenuAddModel buildSysMenuAddModel(SysMenuUpdReq sysMenuUpdReq){
return SysMenuAddModel.builder()
.menuName(sysMenuUpdReq.getMenuName())
.parentId(sysMenuUpdReq.getParentId())
.orderNum(sysMenuUpdReq.getOrderNum())
.path(sysMenuUpdReq.getPath())
.component(sysMenuUpdReq.getComponent())
.query(sysMenuUpdReq.getQuery())
.isFrame(sysMenuUpdReq.getIsFrame())
.isCache(sysMenuUpdReq.getIsCache())
.menuType(sysMenuUpdReq.getMenuType())
.visible(sysMenuUpdReq.getVisible())
.status(sysMenuUpdReq.getStatus())
.perms(sysMenuUpdReq.getPerms())
.icon(sysMenuUpdReq.getIcon())
.children(sysMenuUpdReq.getChildren())
.build();
}
}

View File

@ -0,0 +1,146 @@
package com.muyu.system.domain.model;
import com.muyu.system.domain.SysMenu;
import com.muyu.system.domain.rep.SysMenuAddReq;
import com.muyu.system.domain.rep.SysMenuListReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author yangchoashun
* @date 2025/2/23 17:24
* @version 1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysMenuListModel {
private Long menuId;
/**
*
*/
private String menuName;
/**
*
*/
private String parentName;
/**
* ID
*/
private Long parentId;
/**
*
*/
private Integer orderNum;
/**
*
*/
private String path;
/**
*
*/
private String component;
/**
*
*/
private String query;
/**
* 0 1
*/
private String isFrame;
/**
* 0 1
*/
private String isCache;
/**
* M C F
*/
private String menuType;
/**
* 0 1
*/
private String visible;
/**
* 0 1
*/
private String status;
/**
*
*/
private String perms;
/**
*
*/
private String icon;
/**
*
*/
private List<SysMenu> children = new ArrayList<SysMenu>();
public static SysMenuListModel of(SysMenuListReq sysMenuListReq) {
return SysMenuListModel.builder()
.menuId(sysMenuListReq.getMenuId())
.menuName(sysMenuListReq.getMenuName())
.parentName(sysMenuListReq.getParentName())
.parentId(sysMenuListReq.getParentId())
.orderNum(sysMenuListReq.getOrderNum())
.path(sysMenuListReq.getPath())
.component(sysMenuListReq.getComponent())
.query(sysMenuListReq.getQuery())
.isFrame(sysMenuListReq.getIsFrame())
.isCache(sysMenuListReq.getIsCache())
.menuType(sysMenuListReq.getMenuType())
.visible(sysMenuListReq.getVisible())
.status(sysMenuListReq.getStatus())
.perms(sysMenuListReq.getPerms())
.icon(sysMenuListReq.getIcon())
.children(sysMenuListReq.getChildren())
.build();
}
public static SysMenuListModel buildSysMenuListModel(SysMenu sysMenu) {
return SysMenuListModel.builder()
.menuId(sysMenu.getMenuId())
.menuName(sysMenu.getMenuName())
.parentName(sysMenu.getParentName())
.parentId(sysMenu.getParentId())
.orderNum(sysMenu.getOrderNum())
.path(sysMenu.getPath())
.component(sysMenu.getComponent())
.query(sysMenu.getQuery())
.isFrame(sysMenu.getIsFrame())
.isCache(sysMenu.getIsCache())
.menuType(sysMenu.getMenuType())
.visible(sysMenu.getVisible())
.status(sysMenu.getStatus())
.perms(sysMenu.getPerms())
.icon(sysMenu.getIcon())
.children(sysMenu.getChildren())
.build();
}
}

View File

@ -1,6 +1,7 @@
package com.muyu.system.domain.model;
import com.muyu.common.core.web.model.QueryModel;
import com.muyu.system.domain.rep.SysMenuAddReq;
import com.muyu.system.domain.rep.SysMenuListReq;
import lombok.AllArgsConstructor;
import lombok.Data;

View File

@ -0,0 +1,119 @@
package com.muyu.system.domain.model;
import com.muyu.system.domain.SysMenu;
import com.muyu.system.domain.rep.SysMenuAddReq;
import com.muyu.system.domain.rep.SysMenuUpdReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author yangchoashun
* @date 2025/2/23 17:24
* @version 1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysMenuUpdModel {
/**
* ID
*/
private Long menuId;
/**
*
*/
private String menuName;
/**
* ID
*/
private Long parentId;
/**
*
*/
private Integer orderNum;
/**
*
*/
private String path;
/**
*
*/
private String component;
/**
*
*/
private String query;
/**
* 0 1
*/
private String isFrame;
/**
* 0 1
*/
private String isCache;
/**
* M C F
*/
private String menuType;
/**
* 0 1
*/
private String visible;
/**
* 0 1
*/
private String status;
/**
*
*/
private String perms;
/**
*
*/
private String icon;
/**
*
*/
private List<SysMenu> children = new ArrayList<SysMenu>();
public static SysMenuUpdModel of(SysMenuUpdReq sysMenuUpdReq) {
return SysMenuUpdModel.builder()
.menuName(sysMenuUpdReq.getMenuName())
.parentId(sysMenuUpdReq.getParentId())
.orderNum(sysMenuUpdReq.getOrderNum())
.path(sysMenuUpdReq.getPath())
.component(sysMenuUpdReq.getComponent())
.query(sysMenuUpdReq.getQuery())
.isFrame(sysMenuUpdReq.getIsFrame())
.isCache(sysMenuUpdReq.getIsCache())
.menuType(sysMenuUpdReq.getMenuType())
.visible(sysMenuUpdReq.getVisible())
.status(sysMenuUpdReq.getStatus())
.perms(sysMenuUpdReq.getPerms())
.icon(sysMenuUpdReq.getIcon())
.children(sysMenuUpdReq.getChildren())
.build();
}
}

View File

@ -0,0 +1,79 @@
package com.muyu.system.domain.model;
import com.muyu.common.core.annotation.Excel;
import com.muyu.system.domain.rep.SysPostEditReq;
import com.muyu.system.domain.rep.SysPostSaveReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor; /**
*
* @author: AoCi Tian
* @create: 2025-02-23 19:31
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysPostEditModel {
private static final long serialVersionUID = 1L;
/**
*
*/
@Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC)
private Long postId;
/**
*
*/
@Excel(name = "岗位编码")
private String postCode;
/**
*
*/
@Excel(name = "岗位名称")
private String postName;
/**
*
*/
@Excel(name = "岗位排序")
private Integer postSort;
/**
* 0 1
*/
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
/**
*
*/
@Builder.Default
private boolean flag = false;
/**
*
*/
private String updateBy;
/**
*
*/
private String remark;
public static SysPostEditModel editBuild(SysPostEditReq sysPostEditReq) {
return SysPostEditModel.builder()
.postId(sysPostEditReq.getPostId())
.postCode(sysPostEditReq.getPostCode())
.postName(sysPostEditReq.getPostName())
.postSort(sysPostEditReq.getPostSort())
.status(sysPostEditReq.getStatus())
.flag(sysPostEditReq.isFlag())
.updateBy(sysPostEditReq.getUpdateBy())
.remark(sysPostEditReq.getRemark())
.build();
}
}

View File

@ -0,0 +1,74 @@
package com.muyu.system.domain.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel;
import com.muyu.system.domain.SysPost;
import lombok.*;
import lombok.experimental.SuperBuilder;
import java.util.Date; /**
*
* @author: AoCi Tian
* @create: 2025-02-23 19:31
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysPostListModel {
private static final long serialVersionUID = 1L;
/**
*
*/
@Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC)
private Long postId;
/**
*
*/
@Excel(name = "岗位编码")
private String postCode;
/**
*
*/
@Excel(name = "岗位名称")
private String postName;
/**
*
*/
@Excel(name = "岗位排序")
private Integer postSort;
/**
* 0 1
*/
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
/**
*
*/
@Builder.Default
private boolean flag = false;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
public static SysPostListModel listBuild(SysPost sysPost) {
return SysPostListModel.builder()
.postId(sysPost.getPostId())
.postCode(sysPost.getPostCode())
.postName(sysPost.getPostName())
.postSort(sysPost.getPostSort())
.status(sysPost.getStatus())
.flag(sysPost.isFlag())
.createTime(sysPost.getCreateTime())
.build();
}
}

View File

@ -0,0 +1,73 @@
package com.muyu.system.domain.model;
import com.muyu.common.core.annotation.Excel;
import com.muyu.system.domain.SysPost;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor; /**
*
* @author: AoCi Tian
* @create: 2025-02-23 20:52
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysPostMyInfoModel {
private static final long serialVersionUID = 1L;
/**
*
*/
@Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC)
private Long postId;
/**
*
*/
@Excel(name = "岗位编码")
private String postCode;
/**
*
*/
@Excel(name = "岗位名称")
private String postName;
/**
*
*/
@Excel(name = "岗位排序")
private Integer postSort;
/**
* 0 1
*/
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
/**
*
*/
@Builder.Default
private boolean flag = false;
/**
*
*/
@Excel(name = "备注")
private String remark;
public static SysPostMyInfoModel build(SysPost sysPost) {
return SysPostMyInfoModel.builder()
.postId(sysPost.getPostId())
.postCode(sysPost.getPostCode())
.postName(sysPost.getPostName())
.postSort(sysPost.getPostSort())
.status(sysPost.getStatus())
.remark(sysPost.getRemark())
.flag(sysPost.isFlag())
.build();
}
}

View File

@ -0,0 +1,79 @@
package com.muyu.system.domain.model;
import com.muyu.common.core.annotation.Excel;
import com.muyu.system.domain.SysPost;
import com.muyu.system.domain.rep.SysPostSaveReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor; /**
*
* @author: AoCi Tian
* @create: 2025-02-23 19:31
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysPostSaveModel {
private static final long serialVersionUID = 1L;
/**
*
*/
@Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC)
private Long postId;
/**
*
*/
@Excel(name = "岗位编码")
private String postCode;
/**
*
*/
@Excel(name = "岗位名称")
private String postName;
/**
*
*/
@Excel(name = "岗位排序")
private Integer postSort;
/**
* 0 1
*/
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
/**
*
*/
@Builder.Default
private boolean flag = false;
/**
*
*/
private String createBy;
/**
*
*/
private String remark;
public static SysPostSaveModel saveBuild(SysPostSaveReq sysPostSaveReq) {
return SysPostSaveModel.builder()
.postId(sysPostSaveReq.getPostId())
.postCode(sysPostSaveReq.getPostCode())
.postName(sysPostSaveReq.getPostName())
.postSort(sysPostSaveReq.getPostSort())
.status(sysPostSaveReq.getStatus())
.flag(sysPostSaveReq.isFlag())
.createBy(sysPostSaveReq.getCreateBy())
.remark(sysPostSaveReq.getRemark())
.build();
}
}

View File

@ -41,4 +41,6 @@ public class SysConfigAddReq {
*
*/
private String remark;
}

View File

@ -0,0 +1,96 @@
package com.muyu.system.domain.rep;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.enums.SysWhetherEnum;
import com.muyu.common.core.web.domain.BaseEntity;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.*;
import lombok.experimental.SuperBuilder;
/**
*
*
* @author
* @version 1.0
* @date 2025/2/23 19:29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysDictDataAddReq extends BaseEntity {
/**
*
*/
private Long dictCode;
/**
*
*/
private Long dictSort;
/**
*
*/
private String dictLabel;
/**
*
*/
private String dictValue;
/**
*
*/
private String dictType;
/**
*
*/
private String cssClass;
/**
*
*/
private String listClass;
/**
* Y N
*/
private String isDefault;
/**
* 0 1
*/
private String status;
@NotBlank(message = "字典标签不能为空")
@Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符")
public String getDictLabel () {
return dictLabel;
}
@NotBlank(message = "字典键值不能为空")
@Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符")
public String getDictValue () {
return dictValue;
}
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
public String getDictType () {
return dictType;
}
@Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
public String getCssClass () {
return cssClass;
}
public boolean getDefault () {
return SysWhetherEnum.isYes(this.isDefault);
}
}

View File

@ -0,0 +1,98 @@
package com.muyu.system.domain.rep;
import com.muyu.common.core.enums.SysWhetherEnum;
import com.muyu.common.core.web.domain.BaseEntity;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
*
* @author
* @version 1.0
* @date 2025/2/23 19:29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysDictDataUpdReq extends BaseEntity {
/**
*
*/
private Long dictCode;
/**
*
*/
private Long dictSort;
/**
*
*/
private String dictLabel;
/**
*
*/
private String dictValue;
/**
*
*/
private String dictType;
/**
*
*/
private String cssClass;
/**
*
*/
private String listClass;
/**
* Y N
*/
private String isDefault;
/**
* 0 1
*/
private String status;
@NotBlank(message = "字典标签不能为空")
@Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符")
public String getDictLabel () {
return dictLabel;
}
@NotBlank(message = "字典键值不能为空")
@Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符")
public String getDictValue () {
return dictValue;
}
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
public String getDictType () {
return dictType;
}
@Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
public String getCssClass () {
return cssClass;
}
public boolean getDefault () {
return SysWhetherEnum.isYes(this.isDefault);
}
}

View File

@ -0,0 +1,62 @@
package com.muyu.system.domain.rep;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
*
* @author
* @version 1.0
* @date 2025/2/24 1:35
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysDictTypeAddReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private Long dictId;
/**
*
*/
private String dictName;
/**
*
*/
private String dictType;
/**
* 0 1
*/
private String status;
@NotBlank(message = "字典名称不能为空")
@Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
public String getDictName () {
return dictName;
}
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
@Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)")
public String getDictType () {
return dictType;
}
}

View File

@ -0,0 +1,60 @@
package com.muyu.system.domain.rep;
import com.muyu.common.core.web.domain.BaseEntity;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
*
* @author
* @version 1.0
* @date 2025/2/24 1:35
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysDictTypeUpdReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private Long dictId;
/**
*
*/
private String dictName;
/**
*
*/
private String dictType;
/**
* 0 1
*/
private String status;
@NotBlank(message = "字典名称不能为空")
@Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
public String getDictName () {
return dictName;
}
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
@Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)")
public String getDictType () {
return dictType;
}
}

View File

@ -0,0 +1,52 @@
package com.muyu.system.domain.rep;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @description:
* @author yangchoashun
* @date 2025/2/23 17:24
* @version 1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysLogininforAddReq {
/**
* 访ID
*/
private Long infoId;
/**
*
*/
private String userName;
/**
* 0 1
*/
private String status;
/**
*
*/
private String ipaddr;
/**
*
*/
private String msg;
/**
* 访
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date accessTime;
}

View File

@ -1,5 +1,6 @@
package com.muyu.system.domain.rep;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.web.page.PageReq;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -34,10 +35,12 @@ public class SysLogininforListReq extends PageReq {
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date beginTime;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endTime;
}

View File

@ -0,0 +1,113 @@
package com.muyu.system.domain.rep;
import com.muyu.system.domain.SysMenu;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author yangchoashun
* @date 2025/2/23 17:24
* @version 1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysMenuAddReq {
private Long menuId;
/**
*
*/
@NotBlank(message = "菜单名称不能为空")
private String menuName;
/**
*
*/
private String parentName;
/**
* ID
*/
private Long parentId;
/**
*
*/
@NotNull(message = "显示顺序不能为空")
private Integer orderNum;
/**
*
*/
@NotBlank(message = "路由地址不能为空")
private String path;
/**
*
*/
@NotBlank(message = "组件路径不能为空")
private String component;
/**
*
*/
private String query;
/**
* 0 1
*/
@NotBlank(message = "是否为外链不能为空")
private String isFrame;
/**
* 0 1
*/
@NotBlank(message = "是否缓存不能为空")
private String isCache;
/**
* M C F
*/
@NotBlank(message = "类型不能为空")
private String menuType;
/**
* 0 1
*/
@NotBlank(message = "显示状态不能为空")
private String visible;
/**
* 0 1
*/
@NotBlank(message = "菜单状态不能为空")
private String status;
/**
*
*/
private String perms;
/**
*
*/
@NotBlank(message = "菜单图标不能为空")
private String icon;
/**
*
*/
private List<SysMenu> children = new ArrayList<SysMenu>();
}

View File

@ -1,12 +1,16 @@
package com.muyu.system.domain.rep;
import com.muyu.common.core.web.page.PageReq;
import com.muyu.system.domain.SysMenu;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.ArrayList;
import java.util.List;
/**
*
*
@ -21,12 +25,84 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysMenuListReq extends PageReq {
private Long menuId;
/**
*
*/
private String menuName;
/**
*
*/
private String parentName;
/**
* ID
*/
private Long parentId;
/**
*
*/
private Integer orderNum;
/**
*
*/
private String path;
/**
*
*/
private String component;
/**
*
*/
private String query;
/**
* 0 1
*/
private String isFrame;
/**
* 0 1
*/
private String isCache;
/**
* M C F
*/
private String menuType;
/**
* 0 1
*/
private String visible;
/**
* 0 1
*/
private String status;
/**
*
*/
private String perms;
/**
*
*/
private String icon;
/**
*
*/
private List<SysMenu> children = new ArrayList<SysMenu>();
}

View File

@ -0,0 +1,113 @@
package com.muyu.system.domain.rep;
import com.muyu.system.domain.SysMenu;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author yangchoashun
* @date 2025/2/23 17:24
* @version 1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysMenuUpdReq {
private Long menuId;
/**
*
*/
@NotBlank(message = "菜单名称不能为空")
private String menuName;
/**
*
*/
private String parentName;
/**
* ID
*/
private Long parentId;
/**
*
*/
@NotNull(message = "显示顺序不能为空")
private Integer orderNum;
/**
*
*/
@NotBlank(message = "路由地址不能为空")
private String path;
/**
*
*/
@NotBlank(message = "组件路径不能为空")
private String component;
/**
*
*/
private String query;
/**
* 0 1
*/
@NotBlank(message = "是否为外链不能为空")
private String isFrame;
/**
* 0 1
*/
@NotBlank(message = "是否缓存不能为空")
private String isCache;
/**
* M C F
*/
@NotBlank(message = "类型不能为空")
private String menuType;
/**
* 0 1
*/
@NotBlank(message = "显示状态不能为空")
private String visible;
/**
* 0 1
*/
@NotBlank(message = "菜单状态不能为空")
private String status;
/**
*
*/
private String perms;
/**
*
*/
@NotBlank(message = "菜单图标不能为空")
private String icon;
/**
*
*/
private List<SysMenu> children = new ArrayList<SysMenu>();
}

View File

@ -0,0 +1,66 @@
package com.muyu.system.domain.rep;
import com.muyu.common.core.annotation.Excel;
import com.muyu.system.domain.SysPost;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor; /**
*
* @author: AoCi Tian
* @create: 2025-02-23 19:31
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysPostEditReq {
private static final long serialVersionUID = 1L;
/**
*
*/
@Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC)
private Long postId;
/**
*
*/
@Excel(name = "岗位编码")
private String postCode;
/**
*
*/
@Excel(name = "岗位名称")
private String postName;
/**
*
*/
@Excel(name = "岗位排序")
private Integer postSort;
/**
* 0 1
*/
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
/**
*
*/
@Builder.Default
private boolean flag = false;
/**
*
*/
private String updateBy;
/**
*
*/
private String remark;
}

View File

@ -0,0 +1,69 @@
package com.muyu.system.domain.rep;
import com.muyu.common.core.annotation.Excel;
import com.muyu.system.domain.SysPost;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor; /**
*
* @author: AoCi Tian
* @create: 2025-02-23 19:31
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysPostSaveReq {
private static final long serialVersionUID = 1L;
/**
*
*/
@Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC)
private Long postId;
/**
*
*/
@Excel(name = "岗位编码")
private String postCode;
/**
*
*/
@Excel(name = "岗位名称")
private String postName;
/**
*
*/
@Excel(name = "岗位排序")
private Integer postSort;
/**
* 0 1
*/
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
/**
*
*/
@Builder.Default
private boolean flag = false;
/**
*
*/
private String createBy;
/**
*
*/
private String remark;
}

View File

@ -0,0 +1,88 @@
package com.muyu.system.domain.resp;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.system.domain.SysDictData;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @author SunLY
* @version 1.0
* @date 2025/2/23 21:24
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysDictDataListResp extends BaseEntity {
/**
*
*/
@Excel(name = "字典编码", cellType = Excel.ColumnType.NUMERIC)
private Long dictCode;
/**
*
*/
@Excel(name = "字典排序", cellType = Excel.ColumnType.NUMERIC)
private Long dictSort;
/**
*
*/
@Excel(name = "字典标签")
private String dictLabel;
/**
*
*/
@Excel(name = "字典键值")
private String dictValue;
/**
*
*/
@Excel(name = "字典类型")
private String dictType;
/**
*
*/
private String cssClass;
/**
*
*/
private String listClass;
/**
* Y N
*/
@Excel(name = "是否默认", readConverterExp = "Y=是,N=否")
private String isDefault;
/**
* 0 1
*/
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
public static SysDictDataListResp buildResp(SysDictData sysDictData){
return SysDictDataListResp.builder()
.dictCode(sysDictData.getDictCode())
.dictSort(sysDictData.getDictSort())
.dictLabel(sysDictData.getDictLabel())
.dictValue(sysDictData.getDictValue())
.dictType(sysDictData.getDictType())
.cssClass(sysDictData.getCssClass())
.listClass(sysDictData.getListClass())
.isDefault(sysDictData.getIsDefault())
.status(sysDictData.getStatus())
.build();
}
}

View File

@ -0,0 +1,68 @@
package com.muyu.system.domain.resp;
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.system.domain.model.SysDictTypeListModel;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
*
* @author
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysDictTypeListResp extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
@Excel(name = "字典主键", cellType = ColumnType.NUMERIC)
private Long dictId;
/**
*
*/
@Excel(name = "字典名称")
private String dictName;
/**
*
*/
@Excel(name = "字典类型")
private String dictType;
/**
* 0 1
*/
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
@NotBlank(message = "字典名称不能为空")
@Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
public String getDictName () {
return dictName;
}
public static SysDictTypeListResp buildResp(SysDictTypeListModel sysDictTypeListModel) {
return SysDictTypeListResp.builder()
.dictId(sysDictTypeListModel.getDictId())
.dictName(sysDictTypeListModel.getDictName())
.dictType(sysDictTypeListModel.getDictType())
.status(sysDictTypeListModel.getStatus())
.build();
}
}

View File

@ -0,0 +1,64 @@
package com.muyu.system.domain.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.system.domain.model.SysLogininforListModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @author yangchaoshun
* @version 1.0
* @description:
* @date 2025/2/23 18:18
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysLogininforListResp {
/**
* ID
*/
private Long infoId;
/**
*
*/
private String userName;
/**
* 0 1
*/
private String status;
/**
*
*/
private String ipaddr;
/**
*
*/
private String msg;
/**
* 访
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date accessTime;
public static SysLogininforListResp buildSysLogininforResp(SysLogininforListModel sysLogininforListModel) {
return SysLogininforListResp.builder()
.infoId(sysLogininforListModel.getInfoId())
.userName(sysLogininforListModel.getUserName())
.status(sysLogininforListModel.getStatus())
.ipaddr(sysLogininforListModel.getIpaddr())
.msg(sysLogininforListModel.getMsg())
.accessTime(sysLogininforListModel.getAccessTime())
.build();
}
}

View File

@ -0,0 +1,127 @@
package com.muyu.system.domain.resp;
import com.muyu.system.domain.SysMenu;
import com.muyu.system.domain.model.SysMenuListModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.ArrayList;
import java.util.List;
/**
*
*
* @ClassName SysMenuListReq
* @Author AnNan.Wang
* @Date 2024/12/16 10:55
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class SysMenuListResp {
private Long menuId;
/**
*
*/
private String menuName;
/**
*
*/
private String parentName;
/**
* ID
*/
private Long parentId;
/**
*
*/
private Integer orderNum;
/**
*
*/
private String path;
/**
*
*/
private String component;
/**
*
*/
private String query;
/**
* 0 1
*/
private String isFrame;
/**
* 0 1
*/
private String isCache;
/**
* M C F
*/
private String menuType;
/**
* 0 1
*/
private String visible;
/**
* 0 1
*/
private String status;
/**
*
*/
private String perms;
/**
*
*/
private String icon;
/**
*
*/
private List<SysMenu> children = new ArrayList<SysMenu>();
public static SysMenuListResp buildSysMenuListResp(SysMenuListModel sysMenuListModel){
return SysMenuListResp.builder()
.menuId(sysMenuListModel.getMenuId())
.menuName(sysMenuListModel.getMenuName())
.parentName(sysMenuListModel.getParentName())
.parentId(sysMenuListModel.getParentId())
.orderNum(sysMenuListModel.getOrderNum())
.path(sysMenuListModel.getPath())
.component(sysMenuListModel.getComponent())
.query(sysMenuListModel.getQuery())
.isFrame(sysMenuListModel.getIsFrame())
.isCache(sysMenuListModel.getIsCache())
.menuType(sysMenuListModel.getMenuType())
.visible(sysMenuListModel.getVisible())
.status(sysMenuListModel.getStatus())
.perms(sysMenuListModel.getPerms())
.icon(sysMenuListModel.getIcon())
.children(sysMenuListModel.getChildren())
.build();
}
}

View File

@ -0,0 +1,80 @@
package com.muyu.system.domain.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.system.domain.SysPost;
import com.muyu.system.domain.model.SysPostListModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List; /**
*
* @author: AoCi Tian
* @create: 2025-02-23 19:37
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysPostListResp {
private static final long serialVersionUID = 1L;
/**
*
*/
@Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC)
private Long postId;
/**
*
*/
@Excel(name = "岗位编码")
private String postCode;
/**
*
*/
@Excel(name = "岗位名称")
private String postName;
/**
*
*/
@Excel(name = "岗位排序")
private Integer postSort;
/**
* 0 1
*/
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
/**
*
*/
@Builder.Default
private boolean flag = false;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
public static SysPostListResp listBuild(SysPostListModel sysPostListModel) {
return SysPostListResp.builder()
.postId(sysPostListModel.getPostId())
.postCode(sysPostListModel.getPostCode())
.postName(sysPostListModel.getPostName())
.postSort(sysPostListModel.getPostSort())
.status(sysPostListModel.getStatus())
.flag(sysPostListModel.isFlag())
.createTime(sysPostListModel.getCreateTime())
.build();
}
}

View File

@ -0,0 +1,73 @@
package com.muyu.system.domain.resp;
import com.muyu.common.core.annotation.Excel;
import com.muyu.system.domain.model.SysPostMyInfoModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor; /**
*
* @author: AoCi Tian
* @create: 2025-02-23 20:52
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysPostMyInfoResp {
private static final long serialVersionUID = 1L;
/**
*
*/
@Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC)
private Long postId;
/**
*
*/
@Excel(name = "岗位编码")
private String postCode;
/**
*
*/
@Excel(name = "岗位名称")
private String postName;
/**
*
*/
@Excel(name = "岗位排序")
private Integer postSort;
/**
* 0 1
*/
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
/**
*
*/
@Builder.Default
private boolean flag = false;
/**
*
*/
@Excel(name = "备注")
private String remark;
public static SysPostMyInfoResp messageBuild(SysPostMyInfoModel sysPostMyInfoModel) {
return SysPostMyInfoResp.builder()
.postId(sysPostMyInfoModel.getPostId())
.postCode(sysPostMyInfoModel.getPostCode())
.postName(sysPostMyInfoModel.getPostName())
.postSort(sysPostMyInfoModel.getPostSort())
.status(sysPostMyInfoModel.getStatus())
.remark(sysPostMyInfoModel.getRemark())
.flag(sysPostMyInfoModel.isFlag())
.build();
}
}

View File

@ -3,7 +3,10 @@ package com.muyu.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.common.system.domain.SysDictData;
import com.muyu.system.domain.model.SysDictDataAddModel;
import com.muyu.system.domain.model.SysDictDataPageQueryModel;
import com.muyu.system.domain.model.SysDictDataUpdModel;
import com.muyu.system.domain.rep.SysDictDataUpdReq;
import java.util.List;
@ -51,16 +54,16 @@ public interface SysDictDataService extends IService<SysDictData> {
/**
*
*
* @param dictData
* @param sysDictDataAddModel
*/
public void insertDictData (SysDictData dictData);
public void insertDictData (SysDictDataAddModel sysDictDataAddModel);
/**
*
*
* @param dictData
* @param sysDictDataUpdModel
*/
public void updateDictData (SysDictData dictData);
public void updateDictData (SysDictDataUpdModel sysDictDataUpdModel);
PageQueryModel<SysDictData> pageQuery(SysDictDataPageQueryModel sysDictDataPageQueryModel);

View File

@ -4,7 +4,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.common.system.domain.SysDictData;
import com.muyu.common.system.domain.SysDictType;
import com.muyu.system.domain.model.SysDictTypeAddModel;
import com.muyu.system.domain.model.SysDictTypeListModel;
import com.muyu.system.domain.model.SysDictTypePageQueryModel;
import com.muyu.system.domain.model.SysDictTypeUpdModel;
import java.util.List;
@ -17,11 +20,11 @@ public interface SysDictTypeService extends IService<SysDictType> {
/**
*
*
* @param dictType
* @param sysDictTypePageQueryModel
*
* @return
*/
public List<SysDictType> selectDictTypeList (SysDictType dictType);
public List<SysDictTypeListModel> selectDictTypeList (SysDictTypePageQueryModel sysDictTypePageQueryModel);
/**
*
@ -82,27 +85,36 @@ public interface SysDictTypeService extends IService<SysDictType> {
/**
*
*
* @param dictType
* @param sysDictTypeAddModel
*
* @return
*/
public void insertDictType (SysDictType dictType);
public void insertDictType (SysDictTypeAddModel sysDictTypeAddModel);
/**
*
*
* @param dictType
* @param sysDictTypeUpdModel
*/
public void updateDictType (SysDictType dictType);
public void updateDictType (SysDictTypeUpdModel sysDictTypeUpdModel);
/**
*
*
* @param dictType
* @param sysDictTypeAddModel
*
* @return
*/
public boolean checkDictTypeUnique (SysDictType dictType);
public boolean checkDictTypeUnique (SysDictTypeAddModel sysDictTypeAddModel);
/**
*
*
* @param sysDictTypeUpdModel
*
* @return
*/
public boolean checkDictTypeUnique (SysDictTypeUpdModel sysDictTypeUpdModel);
PageQueryModel<SysDictType> pageQuery(SysDictTypePageQueryModel sysDictTypePageQueryModel);

View File

@ -3,6 +3,7 @@ package com.muyu.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.common.system.domain.SysLogininfor;
import com.muyu.system.domain.model.SysLogininforAddModel;
import com.muyu.system.domain.model.SysLogininforExportModel;
import com.muyu.system.domain.model.SysLogininforListModel;
@ -17,9 +18,9 @@ public interface SysLogininforService extends IService<SysLogininfor> {
/**
*
*
* @param logininfor 访
* @param logininforAddModel 访
*/
public void insertLogininfor (SysLogininfor logininfor);
public void insertLogininfor (SysLogininforAddModel logininforAddModel);
/**
*
@ -28,7 +29,7 @@ public interface SysLogininforService extends IService<SysLogininfor> {
*
* @return
*/
public PageQueryModel<SysLogininfor> pageQuery(SysLogininforListModel sysLogininforListModel);
public PageQueryModel<SysLogininforListModel> pageQuery(SysLogininforListModel sysLogininforListModel);
/**
*

View File

@ -2,6 +2,9 @@ package com.muyu.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.system.domain.SysMenu;
import com.muyu.system.domain.model.SysMenuAddModel;
import com.muyu.system.domain.model.SysMenuListModel;
import com.muyu.system.domain.model.SysMenuUpdModel;
import com.muyu.system.domain.vo.RouterVo;
import com.muyu.system.domain.vo.TreeSelect;
@ -21,17 +24,17 @@ public interface SysMenuService extends IService<SysMenu> {
*
* @return
*/
public List<SysMenu> selectMenuList (Long userId);
public List<SysMenuListModel> selectMenuList (Long userId);
/**
*
*
* @param menu
* @param sysMenuListModel
* @param userId ID
*
* @return
*/
public List<SysMenu> selectMenuList (SysMenu menu, Long userId);
public List<SysMenuListModel> selectMenuList (SysMenuListModel sysMenuListModel, Long userId);
/**
* ID
@ -94,7 +97,7 @@ public interface SysMenuService extends IService<SysMenu> {
*
* @return
*/
public List<TreeSelect> buildMenuTreeSelect (List<SysMenu> menus);
public List<TreeSelect> buildMenuTreeSelect (List<SysMenuListModel> menus);
/**
* ID
@ -126,16 +129,16 @@ public interface SysMenuService extends IService<SysMenu> {
/**
*
*
* @param menu
* @param sysMenuAddModel
*/
public void insertMenu (SysMenu menu);
public void insertMenu (SysMenuAddModel sysMenuAddModel);
/**
*
*
* @param menu
* @param sysMenuUpdModel
*/
public void updateMenu (SysMenu menu);
public void updateMenu (SysMenuUpdModel sysMenuUpdModel);
/**
*
@ -147,10 +150,10 @@ public interface SysMenuService extends IService<SysMenu> {
/**
*
*
* @param menu
* @param sysMenuAddModel
*
* @return
*/
public boolean checkMenuNameUnique (SysMenu menu);
public boolean checkMenuNameUnique (SysMenuAddModel sysMenuAddModel);
}

View File

@ -1,9 +1,11 @@
package com.muyu.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.web.page.DataPageResp;
import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.system.domain.SysPost;
import com.muyu.system.domain.model.SysPostPageQueryModel;
import com.muyu.system.domain.model.*;
import com.muyu.system.domain.resp.SysPostListResp;
import java.util.List;
@ -27,7 +29,7 @@ public interface SysPostService extends IService<SysPost> {
*
* @return
*/
public SysPost selectPostById (Long postId);
public SysPostMyInfoModel selectPostById (Long postId);
/**
* ID
@ -41,20 +43,40 @@ public interface SysPostService extends IService<SysPost> {
/**
*
*
* @param post
* @param sysPostSaveModel
*
* @return
*/
public boolean checkPostNameUnique (SysPost post);
public boolean checkPostNameUnique (SysPostSaveModel sysPostSaveModel);/**
*
*
* @param sysPostEditModel
*
* @return
*/
public boolean checkEditPostNameUnique (SysPostEditModel sysPostEditModel);
/**
*
*
* @param post
* @param sysPostSaveModel
*
* @return
*/
public boolean checkPostCodeUnique (SysPost post);
public boolean checkPostCodeUnique (SysPostSaveModel sysPostSaveModel);
/**
*
*
* @param sysPostEditModel
*
* @return
*/
public boolean checkEditPostCodeUnique (SysPostEditModel sysPostEditModel);
/**
* ID使
@ -103,4 +125,10 @@ public interface SysPostService extends IService<SysPost> {
PageQueryModel<SysPost> pageQuery(SysPostPageQueryModel sysPostPageQueryModel);
/**
*
* @param sysPostPageQueryModel
* @return
*/
PageQueryModel<SysPostListModel> getList(SysPostPageQueryModel sysPostPageQueryModel);
}

View File

@ -9,7 +9,9 @@ import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.common.security.utils.DictUtils;
import com.muyu.common.system.domain.SysDictData;
import com.muyu.system.domain.model.SysDictDataAddModel;
import com.muyu.system.domain.model.SysDictDataPageQueryModel;
import com.muyu.system.domain.model.SysDictDataUpdModel;
import com.muyu.system.mapper.SysDictDataMapper;
import com.muyu.system.service.SysDictDataService;
import org.springframework.beans.factory.annotation.Autowired;
@ -25,15 +27,12 @@ import java.util.List;
*/
@Service
public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDictData> implements SysDictDataService {
@Autowired
private SysDictDataMapper dictDataMapper;
/**
*
*
* @param dictData
* @param pageQueryModel
*
* @return
*/
@ -101,26 +100,48 @@ public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDi
/**
*
*
* @param data
* @param sysDictDataAddModel
*/
@Override
public void insertDictData (SysDictData data) {
if (this.save(data)) {
List<SysDictData> dictDataList = this.selectDictDataByType(data.getDictType());
DictUtils.setDictCache(data.getDictType(), dictDataList);
public void insertDictData (SysDictDataAddModel sysDictDataAddModel) {
SysDictData sysDictData = SysDictData.builder()
.dictCode(sysDictDataAddModel.getDictCode())
.dictSort(sysDictDataAddModel.getDictSort())
.dictLabel(sysDictDataAddModel.getDictLabel())
.dictValue(sysDictDataAddModel.getDictValue())
.dictType(sysDictDataAddModel.getDictType())
.cssClass(sysDictDataAddModel.getCssClass())
.listClass(sysDictDataAddModel.getListClass())
.isDefault(sysDictDataAddModel.getIsDefault())
.status(sysDictDataAddModel.getStatus())
.build();
if (this.save(sysDictData)) {
List<SysDictData> dictDataList = this.selectDictDataByType(sysDictData.getDictType());
DictUtils.setDictCache(sysDictData.getDictType(), dictDataList);
}
}
/**
*
*
* @param data
* @param sysDictDataUpdModel
*/
@Override
public void updateDictData (SysDictData data) {
if (this.updateById(data)) {
List<SysDictData> dictDataList = this.selectDictDataByType(data.getDictType());
DictUtils.setDictCache(data.getDictType(), dictDataList);
public void updateDictData (SysDictDataUpdModel sysDictDataUpdModel) {
SysDictData sysDictData = SysDictData.builder()
.dictCode(sysDictDataUpdModel.getDictCode())
.dictSort(sysDictDataUpdModel.getDictSort())
.dictLabel(sysDictDataUpdModel.getDictLabel())
.dictValue(sysDictDataUpdModel.getDictValue())
.dictType(sysDictDataUpdModel.getDictType())
.cssClass(sysDictDataUpdModel.getCssClass())
.listClass(sysDictDataUpdModel.getListClass())
.isDefault(sysDictDataUpdModel.getIsDefault())
.status(sysDictDataUpdModel.getStatus())
.build();
if (this.updateById(sysDictData)) {
List<SysDictData> dictDataList = this.selectDictDataByType(sysDictData.getDictType());
DictUtils.setDictCache(sysDictData.getDictType(), dictDataList);
}
}

View File

@ -10,7 +10,10 @@ import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.common.security.utils.DictUtils;
import com.muyu.common.system.domain.SysDictData;
import com.muyu.common.system.domain.SysDictType;
import com.muyu.system.domain.model.SysDictTypeAddModel;
import com.muyu.system.domain.model.SysDictTypeListModel;
import com.muyu.system.domain.model.SysDictTypePageQueryModel;
import com.muyu.system.domain.model.SysDictTypeUpdModel;
import com.muyu.system.mapper.SysDictTypeMapper;
import com.muyu.system.service.SysDictDataService;
import com.muyu.system.service.SysDictTypeService;
@ -30,8 +33,7 @@ import java.util.stream.Collectors;
*/
@Service
public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDictType> implements SysDictTypeService {
@Autowired
private SysDictTypeMapper dictTypeMapper;
@Autowired
private SysDictDataService sysDictDataService;
@ -59,24 +61,34 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
/**
*
*
* @param dictType
* @param sysDictTypePageQueryModel
*
* @return
*/
@Override
public List<SysDictType> selectDictTypeList (SysDictType dictType) {
public List<SysDictTypeListModel> selectDictTypeList (SysDictTypePageQueryModel sysDictTypePageQueryModel) {
LambdaQueryWrapper<SysDictType> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.like(StringUtils.isNotEmpty(dictType.getDictName()),SysDictType::getDictName, dictType.getDictName());
lambdaQueryWrapper.eq(StringUtils.isNotEmpty(dictType.getStatus()),SysDictType::getStatus, dictType.getStatus());
lambdaQueryWrapper.like(StringUtils.isNotEmpty(dictType.getDictType()),SysDictType::getDictType, dictType.getDictType());
Map<String, Object> params = dictType.getParams();
lambdaQueryWrapper.like(StringUtils.isNotEmpty(sysDictTypePageQueryModel.getDictName()),SysDictType::getDictName, sysDictTypePageQueryModel.getDictName());
lambdaQueryWrapper.eq(StringUtils.isNotEmpty(sysDictTypePageQueryModel.getStatus()),SysDictType::getStatus, sysDictTypePageQueryModel.getStatus());
lambdaQueryWrapper.like(StringUtils.isNotEmpty(sysDictTypePageQueryModel.getDictType()),SysDictType::getDictType, sysDictTypePageQueryModel.getDictType());
Map<String, Object> params = sysDictTypePageQueryModel.getParams();
Date beginTime = (Date) params.get("beginTime");
Date endTime = (Date) params.get("endTime");
lambdaQueryWrapper.between(
beginTime != null && endTime != null,
SysDictType::getCreateTime, beginTime, endTime
);
return this.list(lambdaQueryWrapper);
List<SysDictType> sysDictTypeList = this.list(lambdaQueryWrapper);
List<SysDictTypeListModel> sysDictTypeListModelList = sysDictTypeList.stream().map(
sysDictType -> SysDictTypeListModel.builder()
.dictId(sysDictType.getDictId())
.dictName(sysDictType.getDictName())
.dictType(sysDictType.getDictType())
.status(sysDictType.getStatus())
.remark(sysDictType.getRemark())
.build()
).distinct().collect(Collectors.toList());
return sysDictTypeListModelList;
}
/**
@ -191,25 +203,38 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
/**
*
*
* @param dict
* @param sysDictTypeAddModel
*
* @return
*/
@Override
public void insertDictType (SysDictType dict) {
if (this.save(dict)) {
DictUtils.setDictCache(dict.getDictType(), null);
public void insertDictType (SysDictTypeAddModel sysDictTypeAddModel) {
SysDictType sysDictType = SysDictType.builder()
.dictName(sysDictTypeAddModel.getDictName())
.dictType(sysDictTypeAddModel.getDictType())
.status(sysDictTypeAddModel.getStatus())
.remark(sysDictTypeAddModel.getRemark())
.build();
if (this.save(sysDictType)) {
DictUtils.setDictCache(sysDictType.getDictType(), null);
}
}
/**
*
*
* @param dict
* @param sysDictTypeUpdModel
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void updateDictType (SysDictType dict) {
public void updateDictType (SysDictTypeUpdModel sysDictTypeUpdModel) {
SysDictType dict = SysDictType.builder()
.dictId(sysDictTypeUpdModel.getDictId())
.dictName(sysDictTypeUpdModel.getDictName())
.dictType(sysDictTypeUpdModel.getDictType())
.status(sysDictTypeUpdModel.getStatus())
.remark(sysDictTypeUpdModel.getRemark())
.build();
SysDictType oldDict = this.getById(dict.getDictId());
sysDictDataService.updateDictDataType(oldDict.getDictType(), dict.getDictType());
if (this.updateById(dict)) {
@ -221,17 +246,30 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
/**
*
*
* @param dict
* @param sysDictTypeAddModel
*
* @return
*/
@Override
public boolean checkDictTypeUnique (SysDictType dict) {
Assert.notNull(dict.getDictType(), "字典类型不可为空");
Long dictId = StringUtils.isNull(dict.getDictId()) ? -1L : dict.getDictId();
public boolean checkDictTypeUnique (SysDictTypeAddModel sysDictTypeAddModel) {
Assert.notNull(sysDictTypeAddModel.getDictType(), "字典类型不可为空");
Long dictId = StringUtils.isNull(sysDictTypeAddModel.getDictId()) ? -1L : sysDictTypeAddModel.getDictId();
LambdaQueryWrapper<SysDictType> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SysDictType::getDictType, dict.getDictType());
lambdaQueryWrapper.ne(dict.getDictId() != null, SysDictType::getDictId, dictId);
lambdaQueryWrapper.eq(SysDictType::getDictType, sysDictTypeAddModel.getDictType());
lambdaQueryWrapper.ne(sysDictTypeAddModel.getDictId() != null, SysDictType::getDictId, dictId);
if (this.count(lambdaQueryWrapper) > 0) {
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
}
@Override
public boolean checkDictTypeUnique(SysDictTypeUpdModel sysDictTypeUpdModel) {
Assert.notNull(sysDictTypeUpdModel.getDictType(), "字典类型不可为空");
Long dictId = StringUtils.isNull(sysDictTypeUpdModel.getDictId()) ? -1L : sysDictTypeUpdModel.getDictId();
LambdaQueryWrapper<SysDictType> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SysDictType::getDictType, sysDictTypeUpdModel.getDictType());
lambdaQueryWrapper.ne(sysDictTypeUpdModel.getDictId() != null, SysDictType::getDictId, dictId);
if (this.count(lambdaQueryWrapper) > 0) {
return UserConstants.NOT_UNIQUE;
}

View File

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.common.system.domain.SysLogininfor;
import com.muyu.system.domain.model.SysLogininforAddModel;
import com.muyu.system.domain.model.SysLogininforExportModel;
import com.muyu.system.domain.model.SysLogininforListModel;
import com.muyu.system.mapper.SysLogininforMapper;
@ -14,6 +15,7 @@ import com.muyu.system.service.SysLogininforService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
@ -30,10 +32,12 @@ public class SysLogininforServiceImpl extends ServiceImpl<SysLogininforMapper, S
/**
*
*
* @param logininfor 访
* @param logininforAddModel 访
*/
@Override
public void insertLogininfor (SysLogininfor logininfor) {
public void insertLogininfor (SysLogininforAddModel logininforAddModel) {
SysLogininfor logininfor = SysLogininforAddModel.of(logininforAddModel);
logininfor.setAccessTime(new Date());
this.save(logininfor);
}
@ -45,14 +49,18 @@ public class SysLogininforServiceImpl extends ServiceImpl<SysLogininforMapper, S
* @return
*/
@Override
public PageQueryModel<SysLogininfor> pageQuery(SysLogininforListModel pageQueryModel) {
LambdaQueryWrapper<SysLogininfor> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtils.isNotEmpty(pageQueryModel.getIpaddr()), SysLogininfor::getIpaddr, pageQueryModel.getIpaddr());
queryWrapper.eq(StringUtils.isNotEmpty(pageQueryModel.getStatus()), SysLogininfor::getStatus, pageQueryModel.getStatus());
queryWrapper.like(StringUtils.isNotEmpty(pageQueryModel.getUserName()), SysLogininfor::getUserName, pageQueryModel.getUserName());
queryWrapper.between(!ObjectUtil.hasNull(pageQueryModel.getBeginTime(),pageQueryModel.getEndTime()), SysLogininfor::getAccessTime, pageQueryModel.getBeginTime(), pageQueryModel.getEndTime());
Page<SysLogininfor> page = this.page(pageQueryModel.buildPage(), queryWrapper);
return PageQueryModel.of(page);
public PageQueryModel<SysLogininforListModel> pageQuery(SysLogininforListModel pageQueryModel) {
Page<SysLogininfor> page = this.page(pageQueryModel.buildPage(), new LambdaQueryWrapper<SysLogininfor>()
.like(StringUtils.isNotEmpty(pageQueryModel.getIpaddr()), SysLogininfor::getIpaddr, pageQueryModel.getIpaddr())
.eq(StringUtils.isNotEmpty(pageQueryModel.getStatus()), SysLogininfor::getStatus, pageQueryModel.getStatus())
.like(StringUtils.isNotEmpty(pageQueryModel.getUserName()), SysLogininfor::getUserName, pageQueryModel.getUserName())
.between(!ObjectUtil.hasNull(pageQueryModel.getBeginTime(),pageQueryModel.getEndTime()), SysLogininfor::getAccessTime, pageQueryModel.getBeginTime(), pageQueryModel.getEndTime()));
return new PageQueryModel<SysLogininforListModel>(){{
setDataList(page.getRecords().stream()
.map(SysLogininforListModel::buildSysLogininforListModel)
.toList());
setTotal(page.getTotal());
}};
}
/**

View File

@ -9,6 +9,9 @@ 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.SysMenu;
import com.muyu.system.domain.model.SysMenuAddModel;
import com.muyu.system.domain.model.SysMenuListModel;
import com.muyu.system.domain.model.SysMenuUpdModel;
import com.muyu.system.domain.vo.MetaVo;
import com.muyu.system.domain.vo.RouterVo;
import com.muyu.system.domain.vo.TreeSelect;
@ -48,35 +51,39 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* @return
*/
@Override
public List<SysMenu> selectMenuList (Long userId) {
return selectMenuList(new SysMenu(), userId);
public List<SysMenuListModel> selectMenuList (Long userId) {
return selectMenuList(new SysMenuListModel(), userId);
}
/**
*
*
* @param menu
* @param sysMenuListModel
*
* @return
*/
@Override
public List<SysMenu> selectMenuList (SysMenu menu, Long userId) {
public List<SysMenuListModel> selectMenuList (SysMenuListModel sysMenuListModel, Long userId) {
List<SysMenu> menuList = null;
// 管理员显示所有菜单信息
if (SysUser.isAdmin(userId)) {
LambdaQueryWrapper<SysMenu> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName());
lambdaQueryWrapper.eq(StringUtils.isNotBlank(menu.getVisible()), SysMenu::getVisible, menu.getVisible());
lambdaQueryWrapper.eq(StringUtils.isNotEmpty(menu.getStatus()), SysMenu::getStatus, menu.getStatus());
lambdaQueryWrapper.like(StringUtils.isNotBlank(sysMenuListModel.getMenuName()), SysMenu::getMenuName, sysMenuListModel.getMenuName());
lambdaQueryWrapper.eq(StringUtils.isNotBlank(sysMenuListModel.getVisible()), SysMenu::getVisible, sysMenuListModel.getVisible());
lambdaQueryWrapper.eq(StringUtils.isNotEmpty(sysMenuListModel.getStatus()), SysMenu::getStatus, sysMenuListModel.getStatus());
lambdaQueryWrapper.orderByAsc(
SysMenu::getParentId, SysMenu::getOrderNum
);
menuList = this.list(lambdaQueryWrapper);
} else {
SysMenu menu = SysMenu.of(sysMenuListModel);
menu.getParams().put("userId", userId);
menuList = menuMapper.selectMenuListByUserId(menu);
}
return menuList;
return menuList.stream()
.map(SysMenuListModel::buildSysMenuListModel)
.toList();
}
/**
@ -247,8 +254,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* @return
*/
@Override
public List<TreeSelect> buildMenuTreeSelect (List<SysMenu> menus) {
List<SysMenu> menuTrees = buildMenuTree(menus);
public List<TreeSelect> buildMenuTreeSelect (List<SysMenuListModel> menus) {
List<SysMenu> menuTrees = buildMenuTree(menus.stream().map(SysMenu::buildSysMenu).collect(Collectors.toList()));
return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
}
@ -296,25 +303,26 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
/**
*
*
* @param menu
* @param sysMenuAddModel
*
* @return
*/
@Override
public void insertMenu (SysMenu menu) {
public void insertMenu (SysMenuAddModel sysMenuAddModel) {
SysMenu menu = SysMenu.buildSysMenu(sysMenuAddModel);
this.save(menu);
}
/**
*
*
* @param menu
* @param sysMenuUpdModel
*
* @return
*/
@Override
public void updateMenu (SysMenu menu) {
this.updateById(menu);
public void updateMenu (SysMenuUpdModel sysMenuUpdModel) {
this.updateById(SysMenu.buildSysMenu(sysMenuUpdModel));
}
/**
@ -332,12 +340,13 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
/**
*
*
* @param menu
* @param sysMenuAddModel
*
* @return
*/
@Override
public boolean checkMenuNameUnique (SysMenu menu) {
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());

View File

@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.constant.UserConstants;
import com.muyu.common.core.exception.ServiceException;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.core.web.page.DataPageResp;
import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.system.domain.SysPost;
import com.muyu.system.domain.model.SysPostPageQueryModel;
import com.muyu.system.domain.model.*;
import com.muyu.system.domain.resp.SysPostListResp;
import com.muyu.system.mapper.SysPostMapper;
import com.muyu.system.mapper.SysUserPostMapper;
import com.muyu.system.service.SysPostService;
@ -52,8 +54,8 @@ public class SysPostServiceImpl extends ServiceImpl<SysPostMapper, SysPost> impl
* @return
*/
@Override
public SysPost selectPostById (Long postId) {
return getById(postId);
public SysPostMyInfoModel selectPostById (Long postId) {
return SysPostMyInfoModel.build(getById(postId));
}
/**
@ -71,15 +73,25 @@ public class SysPostServiceImpl extends ServiceImpl<SysPostMapper, SysPost> impl
/**
*
*
* @param post
* @param sysPostSaveModel
*
* @return
*/
@Override
public boolean checkPostNameUnique (SysPost post) {
public boolean checkPostNameUnique (SysPostSaveModel sysPostSaveModel) {
LambdaQueryWrapper<SysPost> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SysPost::getPostName, post.getPostName());
lambdaQueryWrapper.eq(post.getPostId() != null, SysPost::getPostId, post.getPostId());
lambdaQueryWrapper.eq(SysPost::getPostName, sysPostSaveModel.getPostName());
lambdaQueryWrapper.eq(sysPostSaveModel.getPostId() != null, SysPost::getPostId, sysPostSaveModel.getPostId());
if (this.count(lambdaQueryWrapper) != 0) {
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
}
@Override
public boolean checkEditPostNameUnique (SysPostEditModel sysPostEditModel) {
LambdaQueryWrapper<SysPost> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SysPost::getPostName, sysPostEditModel.getPostName());
lambdaQueryWrapper.eq(sysPostEditModel.getPostId() != null, SysPost::getPostId, sysPostEditModel.getPostId());
if (this.count(lambdaQueryWrapper) != 0) {
return UserConstants.NOT_UNIQUE;
}
@ -89,16 +101,25 @@ public class SysPostServiceImpl extends ServiceImpl<SysPostMapper, SysPost> impl
/**
*
*
* @param post
* @param sysPostSaveModel
*
* @return
*/
@Override
public boolean checkPostCodeUnique (SysPost post) {
public boolean checkPostCodeUnique(SysPostSaveModel sysPostSaveModel) {
LambdaQueryWrapper<SysPost> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SysPost::getPostCode, post.getPostCode());
lambdaQueryWrapper.eq(post.getPostId() != null, SysPost::getPostId, post.getPostId());
lambdaQueryWrapper.eq(SysPost::getPostCode, sysPostSaveModel.getPostCode());
lambdaQueryWrapper.eq(sysPostSaveModel.getPostId() != null, SysPost::getPostId, sysPostSaveModel.getPostId());
if (this.count(lambdaQueryWrapper) != 0) {
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
}
@Override
public boolean checkEditPostCodeUnique(SysPostEditModel sysPostEditModel) {
LambdaQueryWrapper<SysPost> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SysPost::getPostCode, sysPostEditModel.getPostCode());
lambdaQueryWrapper.eq(sysPostEditModel.getPostId() != null, SysPost::getPostId, sysPostEditModel.getPostId());
if (this.count(lambdaQueryWrapper) != 0) {
return UserConstants.NOT_UNIQUE;
}
@ -139,7 +160,7 @@ public class SysPostServiceImpl extends ServiceImpl<SysPostMapper, SysPost> impl
@Override
public void deletePostByIds (List<Long> postIds) {
for (Long postId : postIds) {
SysPost post = selectPostById(postId);
SysPostMyInfoModel post = selectPostById (postId);
if (countUserPostById(postId) > 0) {
throw new ServiceException(String.format("%1$s已分配,不能删除", post.getPostName()));
}
@ -178,6 +199,16 @@ public class SysPostServiceImpl extends ServiceImpl<SysPostMapper, SysPost> impl
queryWrapper.like(StringUtils.isNotEmpty(sysPostPageQueryModel.getPostName()),SysPost::getPostName, sysPostPageQueryModel.getPostName());
queryWrapper.eq(StringUtils.isNotEmpty(sysPostPageQueryModel.getStatus()),SysPost::getStatus, sysPostPageQueryModel.getStatus());
Page<SysPost> page = this.page(sysPostPageQueryModel.buildPage(), queryWrapper);
return PageQueryModel.of(page);
}
@Override
public PageQueryModel<SysPostListModel> getList(SysPostPageQueryModel sysPostPageQueryModel) {
LambdaQueryWrapper<SysPost> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtils.isNotEmpty(sysPostPageQueryModel.getPostCode()),SysPost::getPostCode, sysPostPageQueryModel.getPostCode());
queryWrapper.like(StringUtils.isNotEmpty(sysPostPageQueryModel.getPostName()),SysPost::getPostName, sysPostPageQueryModel.getPostName());
queryWrapper.eq(StringUtils.isNotEmpty(sysPostPageQueryModel.getStatus()),SysPost::getStatus, sysPostPageQueryModel.getStatus());
Page<SysPost> page = this.page(sysPostPageQueryModel.buildPage(), queryWrapper);
return PageQueryModel.of(page.getTotal(),page.getRecords().stream().map(SysPostListModel::listBuild).toList());
}
}

View File

@ -12,6 +12,7 @@ nacos:
spring:
main:
allow-bean-definition-overriding: true
allow-circular-references: true
application:
# 应用名称
name: cloud-system