mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-11-13 14:13:47 +08:00
【V3.5.0】1、【新增】轻量级定时任务 SmartJob;2、【新增】站内信;3、【新增】个人中心;4、【新增】岗位管理;5、【优化】部门员工管理
This commit is contained in:
@@ -25,6 +25,7 @@ public class AdminSwaggerTagConst extends SwaggerTagConst {
|
||||
public static final String OA_INVOICE = "OA办公-发票信息";
|
||||
|
||||
public static final String OA_NOTICE = "OA办公-通知公告";
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -48,6 +49,8 @@ public class AdminSwaggerTagConst extends SwaggerTagConst {
|
||||
|
||||
public static final String SYSTEM_ROLE_MENU = "系统-角色-菜单";
|
||||
|
||||
public static final String SYSTEM_POSITION = "系统-职务管理";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@ package net.lab1024.sa.admin.module.system.department.domain.vo;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 部门
|
||||
*
|
||||
@@ -33,4 +35,10 @@ public class DepartmentVO {
|
||||
@Schema(description = "排序")
|
||||
private Integer sort;
|
||||
|
||||
@Schema(description = "更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
||||
|
||||
@@ -52,6 +52,20 @@ public class EmployeeController {
|
||||
return employeeService.updateEmployee(employeeUpdateForm);
|
||||
}
|
||||
|
||||
@Operation(summary = "更新登录人信息 @author 善逸")
|
||||
@PostMapping("/employee/update/login")
|
||||
public ResponseDTO<String> updateByLogin(@Valid @RequestBody EmployeeUpdateForm employeeUpdateForm) {
|
||||
employeeUpdateForm.setEmployeeId(SmartRequestUtil.getRequestUserId());
|
||||
return employeeService.updateEmployee(employeeUpdateForm);
|
||||
}
|
||||
|
||||
@Operation(summary = "更新登录人头像 @author 善逸")
|
||||
@PostMapping("/employee/update/avatar")
|
||||
public ResponseDTO<String> updateAvatar(@Valid @RequestBody EmployeeUpdateAvatarForm employeeUpdateAvatarForm) {
|
||||
employeeUpdateAvatarForm.setEmployeeId(SmartRequestUtil.getRequestUserId());
|
||||
return employeeService.updateAvatar(employeeUpdateAvatarForm);
|
||||
}
|
||||
|
||||
@Operation(summary = "更新员工禁用/启用状态 @author 卓大")
|
||||
@GetMapping("/employee/update/disabled/{employeeId}")
|
||||
@SaCheckPermission("system:employee:disabled")
|
||||
|
||||
@@ -38,6 +38,11 @@ public class EmployeeEntity {
|
||||
*/
|
||||
private String actualName;
|
||||
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
private String avatar;
|
||||
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
@@ -53,6 +58,11 @@ public class EmployeeEntity {
|
||||
*/
|
||||
private Long departmentId;
|
||||
|
||||
/**
|
||||
* 职务级别ID
|
||||
*/
|
||||
private Long positionId;
|
||||
|
||||
/**
|
||||
* 是否为超级管理员: 0 不是,1是
|
||||
*/
|
||||
|
||||
@@ -53,4 +53,12 @@ public class EmployeeAddForm {
|
||||
|
||||
@Schema(description = "角色列表")
|
||||
private List<Long> roleIdList;
|
||||
|
||||
@Schema(description = "备注")
|
||||
@Length(max = 30, message = "备注最多200字符")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "职务级别ID")
|
||||
private Long positionId;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package net.lab1024.sa.admin.module.system.employee.domain.form;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import net.lab1024.sa.base.common.util.SmartVerificationUtil;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Pattern;
|
||||
|
||||
/**
|
||||
* 修改登录人头像
|
||||
*
|
||||
* @Author 1024创新实验室: 善逸
|
||||
* @Date 2024年6月30日00:26:35
|
||||
* @Wechat zhuoda1024
|
||||
* @Email lab1024@163.com
|
||||
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
|
||||
*/
|
||||
@Data
|
||||
public class EmployeeUpdateAvatarForm {
|
||||
|
||||
@Schema(hidden = true)
|
||||
private Long employeeId;
|
||||
|
||||
@Schema(description = "头像")
|
||||
@NotBlank(message = "头像不能为空哦")
|
||||
private String avatar;
|
||||
}
|
||||
@@ -55,4 +55,11 @@ public class EmployeeVO {
|
||||
|
||||
@Schema(description = "角色名称列表")
|
||||
private List<String> roleNameList;
|
||||
|
||||
@Schema(description = "职务ID")
|
||||
private Long positionId;
|
||||
|
||||
@Schema(description = "职务名称")
|
||||
private String positionName;
|
||||
|
||||
}
|
||||
|
||||
@@ -12,6 +12,9 @@ import net.lab1024.sa.admin.module.system.employee.domain.entity.EmployeeEntity;
|
||||
import net.lab1024.sa.admin.module.system.employee.domain.form.*;
|
||||
import net.lab1024.sa.admin.module.system.employee.domain.vo.EmployeeVO;
|
||||
import net.lab1024.sa.admin.module.system.employee.manager.EmployeeManager;
|
||||
import net.lab1024.sa.admin.module.system.login.service.LoginService;
|
||||
import net.lab1024.sa.admin.module.system.position.dao.PositionDao;
|
||||
import net.lab1024.sa.admin.module.system.position.domain.entity.PositionEntity;
|
||||
import net.lab1024.sa.admin.module.system.role.dao.RoleEmployeeDao;
|
||||
import net.lab1024.sa.admin.module.system.role.domain.vo.RoleEmployeeVO;
|
||||
import net.lab1024.sa.base.common.code.UserErrorCode;
|
||||
@@ -24,6 +27,7 @@ import net.lab1024.sa.base.common.util.SmartPageUtil;
|
||||
import net.lab1024.sa.base.module.support.securityprotect.service.ProtectPasswordService;
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@@ -37,7 +41,7 @@ import java.util.stream.Collectors;
|
||||
* @Date 2021-12-29 21:52:46
|
||||
* @Wechat zhuoda1024
|
||||
* @Email lab1024@163.com
|
||||
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
|
||||
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
|
||||
*/
|
||||
@Service
|
||||
public class EmployeeService {
|
||||
@@ -62,6 +66,13 @@ public class EmployeeService {
|
||||
@Resource
|
||||
private ProtectPasswordService protectPasswordService;
|
||||
|
||||
@Resource
|
||||
@Lazy
|
||||
private LoginService loginService;
|
||||
|
||||
@Resource
|
||||
private PositionDao positionDao;
|
||||
|
||||
public EmployeeEntity getById(Long employeeId) {
|
||||
return employeeDao.selectById(employeeId);
|
||||
}
|
||||
@@ -69,7 +80,6 @@ public class EmployeeService {
|
||||
|
||||
/**
|
||||
* 查询员工列表
|
||||
*
|
||||
*/
|
||||
public ResponseDTO<PageResult<EmployeeVO>> queryEmployee(EmployeeQueryForm employeeQueryForm) {
|
||||
employeeQueryForm.setDeletedFlag(false);
|
||||
@@ -86,16 +96,22 @@ public class EmployeeService {
|
||||
return ResponseDTO.ok(pageResult);
|
||||
}
|
||||
|
||||
List<Long> employeeIdList = employeeList.stream().map(EmployeeVO::getEmployeeId).collect(Collectors.toList());
|
||||
// 查询员工角色
|
||||
List<RoleEmployeeVO> roleEmployeeEntityList = roleEmployeeDao.selectRoleByEmployeeIdList(employeeIdList);
|
||||
List<Long> employeeIdList = employeeList.stream().map(EmployeeVO::getEmployeeId).collect(Collectors.toList());
|
||||
List<RoleEmployeeVO> roleEmployeeEntityList = employeeIdList.isEmpty() ? Collections.emptyList() : roleEmployeeDao.selectRoleByEmployeeIdList(employeeIdList);
|
||||
Map<Long, List<Long>> employeeRoleIdListMap = roleEmployeeEntityList.stream().collect(Collectors.groupingBy(RoleEmployeeVO::getEmployeeId, Collectors.mapping(RoleEmployeeVO::getRoleId, Collectors.toList())));
|
||||
Map<Long, List<String>> employeeRoleNameListMap = roleEmployeeEntityList.stream().collect(Collectors.groupingBy(RoleEmployeeVO::getEmployeeId, Collectors.mapping(RoleEmployeeVO::getRoleName, Collectors.toList())));
|
||||
|
||||
// 查询员工职位
|
||||
List<Long> positionIdList = employeeList.stream().map(EmployeeVO::getPositionId).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
List<PositionEntity> positionEntityList = positionIdList.isEmpty() ? Collections.emptyList() : positionDao.selectBatchIds(positionIdList);
|
||||
Map<Long, String> positionNameMap = positionEntityList.stream().collect(Collectors.toMap(PositionEntity::getPositionId, PositionEntity::getPositionName));
|
||||
|
||||
employeeList.forEach(e -> {
|
||||
e.setRoleIdList(employeeRoleIdListMap.getOrDefault(e.getEmployeeId(), Lists.newArrayList()));
|
||||
e.setRoleNameList(employeeRoleNameListMap.getOrDefault(e.getEmployeeId(), Lists.newArrayList()));
|
||||
e.setDepartmentName(departmentService.getDepartmentPath(e.getDepartmentId()));
|
||||
e.setPositionName(positionNameMap.get(e.getPositionId()));
|
||||
});
|
||||
PageResult<EmployeeVO> pageResult = SmartPageUtil.convert2PageResult(pageParam, employeeList);
|
||||
return ResponseDTO.ok(pageResult);
|
||||
@@ -103,7 +119,6 @@ public class EmployeeService {
|
||||
|
||||
/**
|
||||
* 新增员工
|
||||
*
|
||||
*/
|
||||
public synchronized ResponseDTO<String> addEmployee(EmployeeAddForm employeeAddForm) {
|
||||
// 校验名称是否重复
|
||||
@@ -143,7 +158,6 @@ public class EmployeeService {
|
||||
|
||||
/**
|
||||
* 更新员工
|
||||
*
|
||||
*/
|
||||
public synchronized ResponseDTO<String> updateEmployee(EmployeeUpdateForm employeeUpdateForm) {
|
||||
|
||||
@@ -183,12 +197,38 @@ public class EmployeeService {
|
||||
// 更新数据
|
||||
employeeManager.updateEmployee(entity, employeeUpdateForm.getRoleIdList());
|
||||
|
||||
// 清除员工缓存
|
||||
loginService.clearLoginEmployeeCache(employeeId);
|
||||
|
||||
return ResponseDTO.ok();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更新登录人头像
|
||||
*
|
||||
* @param employeeUpdateAvatarForm
|
||||
* @return
|
||||
*/
|
||||
public ResponseDTO<String> updateAvatar(EmployeeUpdateAvatarForm employeeUpdateAvatarForm) {
|
||||
Long employeeId = employeeUpdateAvatarForm.getEmployeeId();
|
||||
EmployeeEntity employeeEntity = employeeDao.selectById(employeeId);
|
||||
if (employeeEntity == null) {
|
||||
return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST);
|
||||
}
|
||||
// 更新头像
|
||||
EmployeeEntity updateEntity = new EmployeeEntity();
|
||||
updateEntity.setEmployeeId(employeeId);
|
||||
updateEntity.setAvatar(employeeUpdateAvatarForm.getAvatar());
|
||||
employeeDao.updateById(updateEntity);
|
||||
|
||||
// 清除员工缓存
|
||||
loginService.clearLoginEmployeeCache(employeeId);
|
||||
return ResponseDTO.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新禁用/启用状态
|
||||
*
|
||||
*/
|
||||
public ResponseDTO<String> updateDisableFlag(Long employeeId) {
|
||||
if (null == employeeId) {
|
||||
@@ -210,7 +250,6 @@ public class EmployeeService {
|
||||
|
||||
/**
|
||||
* 批量删除员工
|
||||
*
|
||||
*/
|
||||
public ResponseDTO<String> batchUpdateDeleteFlag(List<Long> employeeIdList) {
|
||||
if (CollectionUtils.isEmpty(employeeIdList)) {
|
||||
@@ -239,7 +278,6 @@ public class EmployeeService {
|
||||
|
||||
/**
|
||||
* 批量更新部门
|
||||
*
|
||||
*/
|
||||
public ResponseDTO<String> batchUpdateDepartment(EmployeeBatchUpdateDepartmentForm batchUpdateDepartmentForm) {
|
||||
List<Long> employeeIdList = batchUpdateDepartmentForm.getEmployeeIdList();
|
||||
@@ -262,7 +300,6 @@ public class EmployeeService {
|
||||
|
||||
/**
|
||||
* 更新密码
|
||||
*
|
||||
*/
|
||||
public ResponseDTO<String> updatePassword(EmployeeUpdatePasswordForm updatePasswordForm) {
|
||||
Long employeeId = updatePasswordForm.getEmployeeId();
|
||||
@@ -299,7 +336,6 @@ public class EmployeeService {
|
||||
|
||||
/**
|
||||
* 获取某个部门的员工信息
|
||||
*
|
||||
*/
|
||||
public ResponseDTO<List<EmployeeVO>> getAllEmployeeByDepartmentId(Long departmentId, Boolean disabledFlag) {
|
||||
List<EmployeeEntity> employeeEntityList = employeeDao.selectByDepartmentId(departmentId, disabledFlag);
|
||||
@@ -326,7 +362,6 @@ public class EmployeeService {
|
||||
|
||||
/**
|
||||
* 重置密码
|
||||
*
|
||||
*/
|
||||
public ResponseDTO<String> resetPassword(Integer employeeId) {
|
||||
String password = protectPasswordService.randomPassword();
|
||||
@@ -336,7 +371,6 @@ public class EmployeeService {
|
||||
|
||||
/**
|
||||
* 获取 加密后 的密码
|
||||
*
|
||||
*/
|
||||
public static String getEncryptPwd(String password) {
|
||||
return DigestUtils.md5Hex(String.format(PASSWORD_SALT_FORMAT, password));
|
||||
@@ -345,7 +379,6 @@ public class EmployeeService {
|
||||
|
||||
/**
|
||||
* 查询全部员工
|
||||
*
|
||||
*/
|
||||
public ResponseDTO<List<EmployeeVO>> queryAllEmployee(Boolean disabledFlag) {
|
||||
List<EmployeeVO> employeeList = employeeDao.selectEmployeeByDisabledAndDeleted(disabledFlag, Boolean.FALSE);
|
||||
@@ -354,7 +387,6 @@ public class EmployeeService {
|
||||
|
||||
/**
|
||||
* 根据登录名获取员工
|
||||
*
|
||||
*/
|
||||
public EmployeeEntity getByLoginName(String loginName) {
|
||||
return employeeDao.getByLoginName(loginName, null);
|
||||
|
||||
@@ -31,6 +31,9 @@ public class RequestEmployee implements RequestUser {
|
||||
@Schema(description = "员工名称")
|
||||
private String actualName;
|
||||
|
||||
@Schema(description = "头像")
|
||||
private String avatar;
|
||||
|
||||
@SchemaEnum(GenderEnum.class)
|
||||
private Integer gender;
|
||||
|
||||
@@ -43,9 +46,15 @@ public class RequestEmployee implements RequestUser {
|
||||
@Schema(description = "部门名称")
|
||||
private String departmentName;
|
||||
|
||||
@Schema(description = "是否禁用")
|
||||
private Boolean disabledFlag;
|
||||
|
||||
@Schema(description = "是否为超管")
|
||||
private Boolean administratorFlag;
|
||||
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "请求ip")
|
||||
private String ip;
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ import net.lab1024.sa.base.module.support.captcha.CaptchaService;
|
||||
import net.lab1024.sa.base.module.support.captcha.domain.CaptchaVO;
|
||||
import net.lab1024.sa.base.module.support.config.ConfigKeyEnum;
|
||||
import net.lab1024.sa.base.module.support.config.ConfigService;
|
||||
import net.lab1024.sa.base.module.support.file.service.IFileStorageService;
|
||||
import net.lab1024.sa.base.module.support.loginlog.LoginLogResultEnum;
|
||||
import net.lab1024.sa.base.module.support.loginlog.LoginLogService;
|
||||
import net.lab1024.sa.base.module.support.loginlog.domain.LoginLogEntity;
|
||||
@@ -39,6 +40,7 @@ import net.lab1024.sa.base.module.support.loginlog.domain.LoginLogVO;
|
||||
import net.lab1024.sa.base.module.support.securityprotect.domain.LoginFailEntity;
|
||||
import net.lab1024.sa.base.module.support.securityprotect.service.ProtectLoginService;
|
||||
import net.lab1024.sa.base.module.support.securityprotect.service.ProtectPasswordService;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -110,6 +112,9 @@ public class LoginService implements StpInterface {
|
||||
@Resource
|
||||
private ProtectPasswordService profectPasswordService;
|
||||
|
||||
@Resource
|
||||
private IFileStorageService fileStorageService;
|
||||
|
||||
/**
|
||||
* 获取验证码
|
||||
*/
|
||||
@@ -252,6 +257,15 @@ public class LoginService implements StpInterface {
|
||||
DepartmentVO department = departmentService.getDepartmentById(employeeEntity.getDepartmentId());
|
||||
requestEmployee.setDepartmentName(null == department ? StringConst.EMPTY : department.getName());
|
||||
|
||||
// 头像信息
|
||||
String avatar = employeeEntity.getAvatar();
|
||||
if(StringUtils.isNotBlank(avatar)){
|
||||
ResponseDTO<String> getFileUrl = fileStorageService.getFileUrl(avatar);
|
||||
if(BooleanUtils.isTrue(getFileUrl.getOk())){
|
||||
requestEmployee.setAvatar(getFileUrl.getData());
|
||||
}
|
||||
}
|
||||
|
||||
return requestEmployee;
|
||||
}
|
||||
|
||||
@@ -341,6 +355,15 @@ public class LoginService implements StpInterface {
|
||||
return ResponseDTO.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除员工登录缓存
|
||||
* @param employeeId
|
||||
*/
|
||||
public void clearLoginEmployeeCache(Long employeeId){
|
||||
// 清空登录信息缓存
|
||||
loginEmployeeCache.remove(employeeId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存登录日志
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
package net.lab1024.sa.admin.module.system.position.controller;
|
||||
|
||||
import net.lab1024.sa.admin.constant.AdminSwaggerTagConst;
|
||||
import net.lab1024.sa.admin.module.system.position.domain.form.PositionAddForm;
|
||||
import net.lab1024.sa.admin.module.system.position.domain.form.PositionQueryForm;
|
||||
import net.lab1024.sa.admin.module.system.position.domain.form.PositionUpdateForm;
|
||||
import net.lab1024.sa.admin.module.system.position.domain.vo.PositionVO;
|
||||
import net.lab1024.sa.admin.module.system.position.service.PositionService;
|
||||
import net.lab1024.sa.base.common.domain.ValidateList;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import net.lab1024.sa.base.common.domain.ResponseDTO;
|
||||
import net.lab1024.sa.base.common.domain.PageResult;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 职务表 Controller
|
||||
*
|
||||
* @Author kaiyun
|
||||
* @Date 2024-06-23 23:31:38
|
||||
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
|
||||
*/
|
||||
|
||||
@RestController
|
||||
@Tag(name = AdminSwaggerTagConst.System.SYSTEM_POSITION)
|
||||
public class PositionController {
|
||||
|
||||
@Resource
|
||||
private PositionService positionService;
|
||||
|
||||
@Operation(summary = "分页查询 @author kaiyun")
|
||||
@PostMapping("/position/queryPage")
|
||||
public ResponseDTO<PageResult<PositionVO>> queryPage(@RequestBody @Valid PositionQueryForm queryForm) {
|
||||
return ResponseDTO.ok(positionService.queryPage(queryForm));
|
||||
}
|
||||
|
||||
@Operation(summary = "添加 @author kaiyun")
|
||||
@PostMapping("/position/add")
|
||||
public ResponseDTO<String> add(@RequestBody @Valid PositionAddForm addForm) {
|
||||
return positionService.add(addForm);
|
||||
}
|
||||
|
||||
@Operation(summary = "更新 @author kaiyun")
|
||||
@PostMapping("/position/update")
|
||||
public ResponseDTO<String> update(@RequestBody @Valid PositionUpdateForm updateForm) {
|
||||
return positionService.update(updateForm);
|
||||
}
|
||||
|
||||
@Operation(summary = "批量删除 @author kaiyun")
|
||||
@PostMapping("/position/batchDelete")
|
||||
public ResponseDTO<String> batchDelete(@RequestBody ValidateList<Long> idList) {
|
||||
return positionService.batchDelete(idList);
|
||||
}
|
||||
|
||||
@Operation(summary = "单个删除 @author kaiyun")
|
||||
@GetMapping("/position/delete/{positionId}")
|
||||
public ResponseDTO<String> batchDelete(@PathVariable Long positionId) {
|
||||
return positionService.delete(positionId);
|
||||
}
|
||||
|
||||
|
||||
@Operation(summary = "不分页查询 @author kaiyun")
|
||||
@GetMapping("/position/queryList")
|
||||
public ResponseDTO<List<PositionVO>> queryList() {
|
||||
return ResponseDTO.ok(positionService.queryList());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package net.lab1024.sa.admin.module.system.position.dao;
|
||||
|
||||
import java.util.List;
|
||||
import net.lab1024.sa.admin.module.system.position.domain.entity.PositionEntity;
|
||||
import net.lab1024.sa.admin.module.system.position.domain.form.PositionQueryForm;
|
||||
import net.lab1024.sa.admin.module.system.position.domain.vo.PositionVO;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* 职务表 Dao
|
||||
*
|
||||
* @Author kaiyun
|
||||
* @Date 2024-06-23 23:31:38
|
||||
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
|
||||
*/
|
||||
|
||||
@Mapper
|
||||
@Component
|
||||
public interface PositionDao extends BaseMapper<PositionEntity> {
|
||||
|
||||
/**
|
||||
* 分页 查询
|
||||
*
|
||||
* @param page
|
||||
* @param queryForm
|
||||
* @return
|
||||
*/
|
||||
List<PositionVO> queryPage(Page page, @Param("queryForm") PositionQueryForm queryForm);
|
||||
|
||||
|
||||
/**
|
||||
* 查询
|
||||
* @param deletedFlag
|
||||
* @return
|
||||
*/
|
||||
List<PositionVO> queryList(@Param("deletedFlag") Boolean deletedFlag);
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package net.lab1024.sa.admin.module.system.position.domain.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 职务表 实体类
|
||||
*
|
||||
* @Author kaiyun
|
||||
* @Date 2024-06-23 23:31:38
|
||||
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
|
||||
*/
|
||||
|
||||
@Data
|
||||
@TableName("t_position")
|
||||
public class PositionEntity {
|
||||
|
||||
/**
|
||||
* 职务ID
|
||||
*/
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long positionId;
|
||||
|
||||
/**
|
||||
* 职务名称
|
||||
*/
|
||||
private String positionName;
|
||||
|
||||
/**
|
||||
* 职级
|
||||
*/
|
||||
private String level;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
private Boolean deletedFlag;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package net.lab1024.sa.admin.module.system.position.domain.form;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 职务表 新建表单
|
||||
*
|
||||
* @Author kaiyun
|
||||
* @Date 2024-06-23 23:31:38
|
||||
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class PositionAddForm {
|
||||
|
||||
@Schema(description = "职务名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotBlank(message = "职务名称 不能为空")
|
||||
private String positionName;
|
||||
|
||||
@Schema(description = "职级")
|
||||
private String level;
|
||||
|
||||
@Schema(description = "排序")
|
||||
@NotNull(message = "排序不能为空")
|
||||
private Integer sort;
|
||||
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package net.lab1024.sa.admin.module.system.position.domain.form;
|
||||
|
||||
import net.lab1024.sa.base.common.domain.PageParam;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 职务表 分页查询表单
|
||||
*
|
||||
* @Author kaiyun
|
||||
* @Date 2024-06-23 23:31:38
|
||||
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class PositionQueryForm extends PageParam{
|
||||
|
||||
@Schema(description = "关键字查询")
|
||||
private String keywords;
|
||||
|
||||
@Schema(hidden = true)
|
||||
private Boolean deletedFlag;
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package net.lab1024.sa.admin.module.system.position.domain.form;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 职务表 更新表单
|
||||
*
|
||||
* @Author kaiyun
|
||||
* @Date 2024-06-23 23:31:38
|
||||
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class PositionUpdateForm extends PositionAddForm {
|
||||
|
||||
@Schema(description = "职务ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "职务ID 不能为空")
|
||||
private Long positionId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package net.lab1024.sa.admin.module.system.position.domain.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import java.time.LocalDateTime;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 职务表 列表VO
|
||||
*
|
||||
* @Author kaiyun
|
||||
* @Date 2024-06-23 23:31:38
|
||||
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class PositionVO {
|
||||
|
||||
|
||||
@Schema(description = "职务ID")
|
||||
private Long positionId;
|
||||
|
||||
@Schema(description = "职务名称")
|
||||
private String positionName;
|
||||
|
||||
@Schema(description = "职级")
|
||||
private String level;
|
||||
|
||||
@Schema(description = "排序")
|
||||
private Integer sort;
|
||||
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package net.lab1024.sa.admin.module.system.position.manager;
|
||||
|
||||
import net.lab1024.sa.admin.module.system.position.dao.PositionDao;
|
||||
import net.lab1024.sa.admin.module.system.position.domain.entity.PositionEntity;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 职务表 Manager
|
||||
*
|
||||
* @Author kaiyun
|
||||
* @Date 2024-06-23 23:31:38
|
||||
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
|
||||
*/
|
||||
@Service
|
||||
public class PositionManager extends ServiceImpl<PositionDao, PositionEntity> {
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
package net.lab1024.sa.admin.module.system.position.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import net.lab1024.sa.admin.module.system.position.dao.PositionDao;
|
||||
import net.lab1024.sa.admin.module.system.position.domain.entity.PositionEntity;
|
||||
import net.lab1024.sa.admin.module.system.position.domain.form.PositionAddForm;
|
||||
import net.lab1024.sa.admin.module.system.position.domain.form.PositionQueryForm;
|
||||
import net.lab1024.sa.admin.module.system.position.domain.form.PositionUpdateForm;
|
||||
import net.lab1024.sa.admin.module.system.position.domain.vo.PositionVO;
|
||||
import net.lab1024.sa.base.common.domain.PageResult;
|
||||
import net.lab1024.sa.base.common.domain.ResponseDTO;
|
||||
import net.lab1024.sa.base.common.util.SmartBeanUtil;
|
||||
import net.lab1024.sa.base.common.util.SmartPageUtil;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 职务表 Service
|
||||
*
|
||||
* @Author kaiyun
|
||||
* @Date 2024-06-23 23:31:38
|
||||
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
|
||||
*/
|
||||
|
||||
@Service
|
||||
public class PositionService {
|
||||
|
||||
@Resource
|
||||
private PositionDao positionDao;
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
*
|
||||
* @param queryForm
|
||||
* @return
|
||||
*/
|
||||
public PageResult<PositionVO> queryPage(PositionQueryForm queryForm) {
|
||||
queryForm.setDeletedFlag(Boolean.FALSE);
|
||||
Page<?> page = SmartPageUtil.convert2PageQuery(queryForm);
|
||||
List<PositionVO> list = positionDao.queryPage(page, queryForm);
|
||||
PageResult<PositionVO> pageResult = SmartPageUtil.convert2PageResult(page, list);
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*/
|
||||
public ResponseDTO<String> add(PositionAddForm addForm) {
|
||||
PositionEntity positionEntity = SmartBeanUtil.copy(addForm, PositionEntity.class);
|
||||
positionDao.insert(positionEntity);
|
||||
return ResponseDTO.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*
|
||||
* @param updateForm
|
||||
* @return
|
||||
*/
|
||||
public ResponseDTO<String> update(PositionUpdateForm updateForm) {
|
||||
PositionEntity positionEntity = SmartBeanUtil.copy(updateForm, PositionEntity.class);
|
||||
positionDao.updateById(positionEntity);
|
||||
return ResponseDTO.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param idList
|
||||
* @return
|
||||
*/
|
||||
public ResponseDTO<String> batchDelete(List<Long> idList) {
|
||||
if (CollectionUtils.isEmpty(idList)){
|
||||
return ResponseDTO.ok();
|
||||
}
|
||||
|
||||
positionDao.deleteBatchIds(idList);
|
||||
return ResponseDTO.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 单个删除
|
||||
*/
|
||||
public ResponseDTO<String> delete(Long positionId) {
|
||||
if (null == positionId){
|
||||
return ResponseDTO.ok();
|
||||
}
|
||||
|
||||
positionDao.deleteById(positionId);
|
||||
return ResponseDTO.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List<PositionVO> queryList() {
|
||||
List<PositionVO> list = positionDao.queryList(Boolean.FALSE);
|
||||
return list;
|
||||
}
|
||||
}
|
||||
@@ -2,10 +2,10 @@ package net.lab1024.sa.admin.module.system.role.manager;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import net.lab1024.sa.admin.module.system.role.dao.RoleEmployeeDao;
|
||||
import net.lab1024.sa.admin.module.system.role.domain.entity.RoleEmployeeEntity;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import net.lab1024.sa.admin.module.system.role.domain.entity.RoleEmployeeEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@@ -5,7 +5,9 @@ import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import net.lab1024.sa.base.common.controller.SupportBaseController;
|
||||
import net.lab1024.sa.base.common.domain.PageResult;
|
||||
import net.lab1024.sa.base.common.domain.RequestUser;
|
||||
import net.lab1024.sa.base.common.domain.ResponseDTO;
|
||||
import net.lab1024.sa.base.common.util.SmartRequestUtil;
|
||||
import net.lab1024.sa.base.constant.SwaggerTagConst;
|
||||
import net.lab1024.sa.base.module.support.loginlog.LoginLogService;
|
||||
import net.lab1024.sa.base.module.support.loginlog.domain.LoginLogQueryForm;
|
||||
@@ -39,5 +41,14 @@ public class AdminLoginLogController extends SupportBaseController {
|
||||
return loginLogService.queryByPage(queryForm);
|
||||
}
|
||||
|
||||
@Operation(summary = "分页查询当前登录人信息 @author 善逸")
|
||||
@PostMapping("/loginLog/page/query/login")
|
||||
public ResponseDTO<PageResult<LoginLogVO>> queryByPageLogin(@RequestBody LoginLogQueryForm queryForm) {
|
||||
RequestUser requestUser = SmartRequestUtil.getRequestUser();
|
||||
queryForm.setUserId(requestUser.getUserId());
|
||||
queryForm.setUserType(requestUser.getUserType().getValue());
|
||||
return loginLogService.queryByPage(queryForm);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -5,7 +5,9 @@ import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import net.lab1024.sa.base.common.controller.SupportBaseController;
|
||||
import net.lab1024.sa.base.common.domain.PageResult;
|
||||
import net.lab1024.sa.base.common.domain.RequestUser;
|
||||
import net.lab1024.sa.base.common.domain.ResponseDTO;
|
||||
import net.lab1024.sa.base.common.util.SmartRequestUtil;
|
||||
import net.lab1024.sa.base.constant.SwaggerTagConst;
|
||||
import net.lab1024.sa.base.module.support.operatelog.OperateLogService;
|
||||
import net.lab1024.sa.base.module.support.operatelog.domain.OperateLogQueryForm;
|
||||
@@ -44,4 +46,13 @@ public class AdminOperateLogController extends SupportBaseController {
|
||||
return operateLogService.detail(operateLogId);
|
||||
}
|
||||
|
||||
@Operation(summary = "分页查询当前登录人信息 @author 善逸")
|
||||
@PostMapping("/operateLog/page/query/login")
|
||||
public ResponseDTO<PageResult<OperateLogVO>> queryByPageLogin(@RequestBody OperateLogQueryForm queryForm) {
|
||||
RequestUser requestUser = SmartRequestUtil.getRequestUser();
|
||||
queryForm.setOperateUserId(requestUser.getUserId());
|
||||
queryForm.setOperateUserType(requestUser.getUserType().getValue());
|
||||
return operateLogService.queryByPage(queryForm);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
package net.lab1024.sa.admin.module.system.support;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import net.lab1024.sa.base.common.controller.SupportBaseController;
|
||||
import net.lab1024.sa.base.common.domain.PageResult;
|
||||
import net.lab1024.sa.base.common.domain.RequestUser;
|
||||
import net.lab1024.sa.base.common.domain.ResponseDTO;
|
||||
import net.lab1024.sa.base.common.util.SmartRequestUtil;
|
||||
import net.lab1024.sa.base.constant.SwaggerTagConst;
|
||||
import net.lab1024.sa.base.module.support.job.api.SmartJobService;
|
||||
import net.lab1024.sa.base.module.support.job.api.domain.*;
|
||||
import net.lab1024.sa.base.module.support.job.config.SmartJobAutoConfiguration;
|
||||
import net.lab1024.sa.base.module.support.repeatsubmit.annoation.RepeatSubmit;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
/**
|
||||
* 定时任务 管理接口
|
||||
*
|
||||
* @author huke
|
||||
* @date 2024/6/17 20:41
|
||||
*/
|
||||
@Tag(name = SwaggerTagConst.Support.JOB)
|
||||
@RestController
|
||||
@ConditionalOnBean(SmartJobAutoConfiguration.class)
|
||||
public class AdminSmartJobController extends SupportBaseController {
|
||||
|
||||
@Autowired
|
||||
private SmartJobService jobService;
|
||||
|
||||
@Operation(summary = "定时任务-立即执行 @huke")
|
||||
@PostMapping("/job/execute")
|
||||
@RepeatSubmit
|
||||
public ResponseDTO<String> execute(@RequestBody @Valid SmartJobExecuteForm executeForm) {
|
||||
RequestUser requestUser = SmartRequestUtil.getRequestUser();
|
||||
executeForm.setUpdateName(requestUser.getUserName());
|
||||
return jobService.execute(executeForm);
|
||||
}
|
||||
|
||||
@Operation(summary = "定时任务-查询详情 @huke")
|
||||
@GetMapping("/job/{jobId}")
|
||||
public ResponseDTO<SmartJobVO> queryJobInfo(@PathVariable Integer jobId) {
|
||||
return jobService.queryJobInfo(jobId);
|
||||
}
|
||||
|
||||
@Operation(summary = "定时任务-分页查询 @huke")
|
||||
@PostMapping("/job/query")
|
||||
public ResponseDTO<PageResult<SmartJobVO>> queryJob(@RequestBody @Valid SmartJobQueryForm queryForm) {
|
||||
return jobService.queryJob(queryForm);
|
||||
}
|
||||
|
||||
@Operation(summary = "定时任务-更新-任务信息 @huke")
|
||||
@PostMapping("/job/update")
|
||||
@RepeatSubmit
|
||||
public ResponseDTO<String> updateJob(@RequestBody @Valid SmartJobUpdateForm updateForm) {
|
||||
RequestUser requestUser = SmartRequestUtil.getRequestUser();
|
||||
updateForm.setUpdateName(requestUser.getUserName());
|
||||
return jobService.updateJob(updateForm);
|
||||
}
|
||||
|
||||
@Operation(summary = "定时任务-更新-开启状态 @huke")
|
||||
@PostMapping("/job/update/enabled")
|
||||
@RepeatSubmit
|
||||
public ResponseDTO<String> updateJobEnabled(@RequestBody @Valid SmartJobEnabledUpdateForm updateForm) {
|
||||
RequestUser requestUser = SmartRequestUtil.getRequestUser();
|
||||
updateForm.setUpdateName(requestUser.getUserName());
|
||||
return jobService.updateJobEnabled(updateForm);
|
||||
}
|
||||
|
||||
@Operation(summary = "定时任务-执行记录-分页查询 @huke")
|
||||
@PostMapping("/job/log/query")
|
||||
public ResponseDTO<PageResult<SmartJobLogVO>> queryJobLog(@RequestBody @Valid SmartJobLogQueryForm queryForm) {
|
||||
return jobService.queryJobLog(queryForm);
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
# 项目配置: 名称、日志目录
|
||||
project:
|
||||
name: sa-admin
|
||||
log-directory: /home/logs/smart_admin_v3/${project.name}/${spring.profiles.active}
|
||||
log-directory: ${localPath:/home}/logs/smart_admin_v3/${project.name}/${spring.profiles.active}
|
||||
|
||||
# 项目端口和url根路径
|
||||
server:
|
||||
@@ -21,12 +21,6 @@ spring:
|
||||
profiles:
|
||||
active: '@profiles.active@'
|
||||
|
||||
# swagger文档
|
||||
swagger:
|
||||
host: localhost:${server.port}
|
||||
tag-class: net.lab1024.sa.admin.constant.AdminSwaggerTagConst
|
||||
|
||||
|
||||
####################################### 安全等级保护 相关配置 ##################################################
|
||||
# #
|
||||
# 建议开启 "三级等保" 所要求的配置,具体如下: #
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="net.lab1024.sa.admin.module.system.position.dao.PositionDao">
|
||||
|
||||
<!-- 分页查询 -->
|
||||
<select id="queryPage" resultType="net.lab1024.sa.admin.module.system.position.domain.vo.PositionVO">
|
||||
SELECT
|
||||
*
|
||||
FROM t_position
|
||||
<where>
|
||||
deleted_flag = #{queryForm.deletedFlag}
|
||||
<!--关键字查询-->
|
||||
<if test="queryForm.keywords != null and queryForm.keywords != ''">
|
||||
AND INSTR(t_position.position_name,#{queryForm.keywords})
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
||||
<select id="queryList" resultType="net.lab1024.sa.admin.module.system.position.domain.vo.PositionVO">
|
||||
SELECT *
|
||||
FROM t_position
|
||||
where deleted_flag = #{deletedFlag}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -21,12 +21,6 @@ spring:
|
||||
profiles:
|
||||
active: '@profiles.active@'
|
||||
|
||||
# swagger文档
|
||||
swagger:
|
||||
host: localhost:${server.port}
|
||||
tag-class: net.lab1024.sa.admin.constant.AdminSwaggerTagConst
|
||||
|
||||
|
||||
####################################### 安全等级保护 相关配置 ##################################################
|
||||
# #
|
||||
# 建议开启 "三级等保" 所要求的配置,具体如下: #
|
||||
|
||||
@@ -21,12 +21,6 @@ spring:
|
||||
profiles:
|
||||
active: '@profiles.active@'
|
||||
|
||||
# swagger文档
|
||||
swagger:
|
||||
host: localhost:${server.port}
|
||||
tag-class: net.lab1024.sa.admin.constant.AdminSwaggerTagConst
|
||||
|
||||
|
||||
####################################### 安全等级保护 相关配置 ##################################################
|
||||
# #
|
||||
# 建议开启 "三级等保" 所要求的配置,具体如下: #
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
# 项目配置: 名称、日志目录
|
||||
project:
|
||||
name: sa-admin
|
||||
log-directory: /home/logs/smart_admin_v3/${project.name}/${spring.profiles.active}
|
||||
log-directory: /home/project/smartadmin/sit/log
|
||||
|
||||
# 项目端口和url根路径
|
||||
server:
|
||||
port: 1024
|
||||
port: 11024
|
||||
servlet:
|
||||
context-path: /
|
||||
|
||||
@@ -21,12 +21,6 @@ spring:
|
||||
profiles:
|
||||
active: '@profiles.active@'
|
||||
|
||||
# swagger文档
|
||||
swagger:
|
||||
host: localhost:${server.port}
|
||||
tag-class: net.lab1024.sa.admin.constant.AdminSwaggerTagConst
|
||||
|
||||
|
||||
####################################### 安全等级保护 相关配置 ##################################################
|
||||
# #
|
||||
# 建议开启 "三级等保" 所要求的配置,具体如下: #
|
||||
|
||||
Reference in New Issue
Block a user