Compare commits

...

5 Commits

Author SHA1 Message Date
MMS
94f19d5e9c Merge remote-tracking branch 'origin/master' into doc 2025-08-31 00:28:27 +08:00
MMS
ea762f8a64 优化doc 2025-08-31 00:28:04 +08:00
MMS
56fb568eaf 优化doc 2025-08-30 21:56:27 +08:00
xijue
eb1f00701e 数据模型 2025-08-29 16:20:53 +08:00
xijue
ec16b3dd8d 简化 2025-08-28 11:49:43 +08:00
30 changed files with 759 additions and 484 deletions

View File

@ -21,7 +21,7 @@ public class GeneratePassword {
//加密内容 //加密内容
System.out.println("url: " + CryptoUtils.encrypt(arr[0], "jdbc:mysql://localhost:3306/mms")); System.out.println("url: " + CryptoUtils.encrypt(arr[0], "jdbc:mysql://localhost:3306/mms"));
System.out.println("username: " + CryptoUtils.encrypt(arr[0], "root")); System.out.println("username: " + CryptoUtils.encrypt(arr[0], "root"));
System.out.println("password: " + CryptoUtils.encrypt(arr[0], "123456")); System.out.println("password: " + CryptoUtils.encrypt(arr[0], "ieHsBpEdmKcDfMtm"));
//备注: 生成的密文 要和 publicKey 一起更新到配置文件中否则会造成解密失败 //备注: 生成的密文 要和 publicKey 一起更新到配置文件中否则会造成解密失败
} }

View File

@ -35,7 +35,7 @@ import java.util.Map;
* @author mmsAdmin * @author mmsAdmin
* @Doc <a href='https://www.mmsadmin.com'>MMS文档</a> * @Doc <a href='https://www.mmsadmin.com'>MMS文档</a>
*/ */
@Tag(name = "系统登录",description = "系统登录,鉴权") @Tag(name = "系统管理模块-登录,鉴权",description = "系统管理模块-登录,鉴权")
@Slf4j @Slf4j
@Validated @Validated
@RequiredArgsConstructor @RequiredArgsConstructor

View File

@ -8,6 +8,7 @@ import com.sxpcwlkj.common.utils.DataUtil;
import com.sxpcwlkj.common.utils.R; import com.sxpcwlkj.common.utils.R;
import com.sxpcwlkj.system.service.CaptchaService; import com.sxpcwlkj.system.service.CaptchaService;
import com.sxpcwlkj.system.service.SysTenantService; import com.sxpcwlkj.system.service.SysTenantService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -26,7 +27,7 @@ import java.util.Map;
* @author mmsAdmin * @author mmsAdmin
* @Doc <a href='https://www.mmsadmin.com'>MMS文档</a> * @Doc <a href='https://www.mmsadmin.com'>MMS文档</a>
*/ */
@Tag(name = "系统管理模块-验证码处理",description = "系统管理模块-验证码处理")
@Slf4j @Slf4j
@Validated @Validated
@RequiredArgsConstructor @RequiredArgsConstructor

View File

@ -33,6 +33,7 @@ import com.sxpcwlkj.system.service.SysDictService;
import com.sxpcwlkj.system.service.SysLoginService; import com.sxpcwlkj.system.service.SysLoginService;
import com.sxpcwlkj.system.service.SysUserService; import com.sxpcwlkj.system.service.SysUserService;
import com.sxpcwlkj.wx.service.WxCodeService; import com.sxpcwlkj.wx.service.WxCodeService;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -50,6 +51,7 @@ import java.util.*;
* @author mmsAdmin * @author mmsAdmin
* @Doc <a href='https://www.mmsadmin.com'>MMS文档</a> * @Doc <a href='https://www.mmsadmin.com'>MMS文档</a>
*/ */
@Tag(name = "系统管理模块-公共接口",description = "系统管理模块-公共接口")
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
@ -97,7 +99,7 @@ public class CommonController extends BaseController {
map.put("loginType", DataUtil.getStringToList(smsConfigEntity.getConfigValue())); map.put("loginType", DataUtil.getStringToList(smsConfigEntity.getConfigValue()));
} }
if("sys_base_tenant_state".equals(smsConfigEntity.getConfigKey())){ if("sys_base_tenant_state".equals(smsConfigEntity.getConfigKey())){
map.put("tenantState", Convert.toInt(smsConfigEntity.getConfigValue()) == 1); map.put("tenantState", Convert.toInt(smsConfigEntity.getConfigValue()).equals(SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue()));
} }
if("sys_base_login_bg".equals(smsConfigEntity.getConfigKey())){ if("sys_base_login_bg".equals(smsConfigEntity.getConfigKey())){
map.put("loginBg",smsConfigEntity.getConfigValue()); map.put("loginBg",smsConfigEntity.getConfigValue());

View File

@ -15,6 +15,7 @@ import com.sxpcwlkj.system.service.SysConfigService;
import com.sxpcwlkj.system.service.SysFunctionService; import com.sxpcwlkj.system.service.SysFunctionService;
import com.sxpcwlkj.system.service.SysNoticeService; import com.sxpcwlkj.system.service.SysNoticeService;
import com.sxpcwlkj.system.service.SysUserService; import com.sxpcwlkj.system.service.SysUserService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -29,6 +30,7 @@ import java.util.*;
* @author mmsAdmin * @author mmsAdmin
* @Doc <a href='https://www.mmsadmin.com'>MMS文档</a> * @Doc <a href='https://www.mmsadmin.com'>MMS文档</a>
*/ */
@Tag(name = "系统管理模块-首页控制台",description = "系统管理模块-首页控制台")
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@RequestMapping("system/home") @RequestMapping("system/home")

View File

@ -12,6 +12,7 @@ import com.sxpcwlkj.sms.service.SmsService;
import com.sxpcwlkj.system.entity.bo.SysConfigBo; import com.sxpcwlkj.system.entity.bo.SysConfigBo;
import com.sxpcwlkj.system.entity.vo.SysConfigVo; import com.sxpcwlkj.system.entity.vo.SysConfigVo;
import com.sxpcwlkj.system.service.SysConfigService; import com.sxpcwlkj.system.service.SysConfigService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -26,6 +27,7 @@ import java.util.List;
* @author mmsAdmin * @author mmsAdmin
* @Doc <a href='https://www.mmsadmin.com'>MMS文档</a> * @Doc <a href='https://www.mmsadmin.com'>MMS文档</a>
*/ */
@Tag(name = "系统管理模块-系统配置",description = "系统管理模块-系统配置")
@Slf4j @Slf4j
@Validated @Validated
@RequiredArgsConstructor @RequiredArgsConstructor

View File

@ -13,6 +13,7 @@ import com.sxpcwlkj.system.entity.bo.SysDeptBo;
import com.sxpcwlkj.system.entity.export.SysDeptExport; import com.sxpcwlkj.system.entity.export.SysDeptExport;
import com.sxpcwlkj.system.entity.vo.SysDeptVo; import com.sxpcwlkj.system.entity.vo.SysDeptVo;
import com.sxpcwlkj.system.service.SysDeptService; import com.sxpcwlkj.system.service.SysDeptService;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -31,6 +32,7 @@ import java.util.Set;
* @author mmsAdmin * @author mmsAdmin
* @Doc <a href='https://www.mmsadmin.com'>MMS文档</a> * @Doc <a href='https://www.mmsadmin.com'>MMS文档</a>
*/ */
@Tag(name = "系统管理模块-系统部门",description = "系统管理模块-系统部门")
@Slf4j @Slf4j
@Validated @Validated
@RequiredArgsConstructor @RequiredArgsConstructor

View File

@ -9,6 +9,7 @@ import com.sxpcwlkj.framework.config.ValidatedGroupConfig;
import com.sxpcwlkj.system.entity.bo.SysDictBo; import com.sxpcwlkj.system.entity.bo.SysDictBo;
import com.sxpcwlkj.system.entity.vo.SysDictVo; import com.sxpcwlkj.system.entity.vo.SysDictVo;
import com.sxpcwlkj.system.service.SysDictService; import com.sxpcwlkj.system.service.SysDictService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.*;
* @author mmsAdmin * @author mmsAdmin
* @Doc <a href='https://www.mmsadmin.com'>MMS文档</a> * @Doc <a href='https://www.mmsadmin.com'>MMS文档</a>
*/ */
@Tag(name = "系统管理模块-系统字典",description = "系统管理模块-系统字典")
@RequestMapping("system/dict") @RequestMapping("system/dict")
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@ -30,7 +32,6 @@ public class SysDictController extends BaseController {
* 分页查询字典列表 * 分页查询字典列表
* *
* @param bo 查询条件 * @param bo 查询条件
* @param pageQuery 分页条件
* @return 分页结果 * @return 分页结果
*/ */
@MssSafety @MssSafety

View File

@ -9,6 +9,7 @@ import com.sxpcwlkj.system.entity.AdminMenuTree;
import com.sxpcwlkj.system.entity.bo.SysFunctionBo; import com.sxpcwlkj.system.entity.bo.SysFunctionBo;
import com.sxpcwlkj.system.entity.vo.SysFunctionVo; import com.sxpcwlkj.system.entity.vo.SysFunctionVo;
import com.sxpcwlkj.system.service.SysFunctionService; import com.sxpcwlkj.system.service.SysFunctionService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -22,6 +23,7 @@ import java.util.List;
* @author mmsAdmin * @author mmsAdmin
* @Doc <a href='https://www.mmsadmin.com'>MMS文档</a> * @Doc <a href='https://www.mmsadmin.com'>MMS文档</a>
*/ */
@Tag(name = "系统管理模块-系统资源",description = "系统管理模块-系统资源")
@RequestMapping("system/function") @RequestMapping("system/function")
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor

View File

@ -13,6 +13,7 @@ import com.sxpcwlkj.system.entity.bo.SysNoticeBo;
import com.sxpcwlkj.system.entity.export.SysNoticeExport; import com.sxpcwlkj.system.entity.export.SysNoticeExport;
import com.sxpcwlkj.system.entity.vo.SysNoticeVo; import com.sxpcwlkj.system.entity.vo.SysNoticeVo;
import com.sxpcwlkj.system.service.SysNoticeService; import com.sxpcwlkj.system.service.SysNoticeService;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -31,6 +32,7 @@ import java.util.Set;
* @author mmsAdmin * @author mmsAdmin
* @Doc <a href='https://www.mmsadmin.com'>MMS文档</a> * @Doc <a href='https://www.mmsadmin.com'>MMS文档</a>
*/ */
@Tag(name = "系统管理模块-系统公告",description = "系统管理模块-系统公告")
@Slf4j @Slf4j
@Validated @Validated
@RequiredArgsConstructor @RequiredArgsConstructor

View File

@ -5,6 +5,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaCheckRole; import cn.dev33.satoken.annotation.SaCheckRole;
import com.sxpcwlkj.common.annotation.MssSafety; import com.sxpcwlkj.common.annotation.MssSafety;
import com.sxpcwlkj.common.code.controller.BaseController; import com.sxpcwlkj.common.code.controller.BaseController;
import com.sxpcwlkj.common.enums.SystemCommonEnum;
import com.sxpcwlkj.common.utils.R; import com.sxpcwlkj.common.utils.R;
import com.sxpcwlkj.datasource.entity.page.TableDataInfo; import com.sxpcwlkj.datasource.entity.page.TableDataInfo;
import com.sxpcwlkj.framework.config.ValidatedGroupConfig; import com.sxpcwlkj.framework.config.ValidatedGroupConfig;
@ -15,6 +16,7 @@ import com.sxpcwlkj.system.entity.vo.SysOssConfigVo;
import com.sxpcwlkj.system.entity.vo.SysOssVo; import com.sxpcwlkj.system.entity.vo.SysOssVo;
import com.sxpcwlkj.system.service.SysOssConfigService; import com.sxpcwlkj.system.service.SysOssConfigService;
import com.sxpcwlkj.system.service.SysOssService; import com.sxpcwlkj.system.service.SysOssService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.x.file.storage.core.FileInfo; import org.dromara.x.file.storage.core.FileInfo;
import org.dromara.x.file.storage.core.FileStorageService; import org.dromara.x.file.storage.core.FileStorageService;
@ -28,6 +30,7 @@ import org.springframework.web.multipart.MultipartFile;
* @author mmsAdmin * @author mmsAdmin
* @Doc <a href='https://www.mmsadmin.com'>MMS文档</a> * @Doc <a href='https://www.mmsadmin.com'>MMS文档</a>
*/ */
@Tag(name = "系统管理模块-对象存储",description = "系统管理模块-对象存储")
@RequestMapping("system/oss") @RequestMapping("system/oss")
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@ -87,7 +90,7 @@ public class SysOssController extends BaseController {
sysOssBo.setPlatform(fileInfo.getPlatform()); sysOssBo.setPlatform(fileInfo.getPlatform());
sysOssBo.setContentType(fileInfo.getContentType()); sysOssBo.setContentType(fileInfo.getContentType());
sysOssBo.setBasePath(fileInfo.getBasePath()); sysOssBo.setBasePath(fileInfo.getBasePath());
sysOssBo.setStatus(0); sysOssBo.setStatus(SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue());
sysOssBo.setSort(0); sysOssBo.setSort(0);
return success(baseService.insert(sysOssBo)); return success(baseService.insert(sysOssBo));
} }

View File

@ -9,6 +9,7 @@ import com.sxpcwlkj.framework.config.ValidatedGroupConfig;
import com.sxpcwlkj.system.entity.bo.SysRoleBo; import com.sxpcwlkj.system.entity.bo.SysRoleBo;
import com.sxpcwlkj.system.entity.vo.SysRoleVo; import com.sxpcwlkj.system.entity.vo.SysRoleVo;
import com.sxpcwlkj.system.service.SysRoleService; import com.sxpcwlkj.system.service.SysRoleService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -20,6 +21,7 @@ import org.springframework.web.bind.annotation.*;
* @author mmsAdmin * @author mmsAdmin
* @Doc <a href='https://www.mmsadmin.com'>MMS文档</a> * @Doc <a href='https://www.mmsadmin.com'>MMS文档</a>
*/ */
@Tag(name = "系统管理模块-系统角色",description = "系统管理模块-系统角色")
@RequestMapping("system/role") @RequestMapping("system/role")
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor

View File

@ -21,6 +21,7 @@ import com.sxpcwlkj.system.entity.export.SysUserExportVo;
import com.sxpcwlkj.system.entity.vo.SysUserVo; import com.sxpcwlkj.system.entity.vo.SysUserVo;
import com.sxpcwlkj.system.service.SysUserService; import com.sxpcwlkj.system.service.SysUserService;
import com.sxpcwlkj.wx.service.WxCodeService; import com.sxpcwlkj.wx.service.WxCodeService;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -42,6 +43,7 @@ import java.util.Set;
* @author mmsAdmin * @author mmsAdmin
* @Doc <a href='https://www.mmsadmin.com'>MMS文档</a> * @Doc <a href='https://www.mmsadmin.com'>MMS文档</a>
*/ */
@Tag(name = "系统管理模块-系统用户",description = "系统管理模块-系统用户")
@Slf4j @Slf4j
@Validated @Validated
@RequiredArgsConstructor @RequiredArgsConstructor

View File

@ -53,7 +53,7 @@ public class SysUserBo extends BaseEntity {
* 用户账号 * 用户账号
*/ */
@NotBlank(message = "账号不能为空", groups = {ValidatedGroupConfig.insert.class, ValidatedGroupConfig.update.class}) @NotBlank(message = "账号不能为空", groups = {ValidatedGroupConfig.insert.class, ValidatedGroupConfig.update.class})
@Size(min = 4, max = 20, message = "账号长度在5到20之间", groups = {ValidatedGroupConfig.insert.class, ValidatedGroupConfig.update.class}) @Size(min = 3, max = 20, message = "账号长度在3到20之间", groups = {ValidatedGroupConfig.insert.class, ValidatedGroupConfig.update.class})
private String userName; private String userName;
/** /**

View File

@ -25,7 +25,7 @@ public class SysDictDataVo {
private Integer sort; private Integer sort;
private String status; private Integer status;
private String colorType; private String colorType;

View File

@ -29,9 +29,9 @@ public class SysDictVo {
*/ */
private Integer type; private Integer type;
/** /**
* 状态;0正常 1停用 * 状态;1正常 0停用
*/ */
private String status; private Integer status;
/** /**
* 排序 * 排序
*/ */

View File

@ -63,7 +63,7 @@ public class SysFunctionVo {
*/ */
private String componentName; private String componentName;
/** /**
* 状态;0正常 1停用 * 状态;1正常 0停用
*/ */
private Integer status; private Integer status;
/** /**

View File

@ -41,7 +41,7 @@ public class CaptchaServiceImpl implements CaptchaService {
// msg验证码未开启 // msg验证码未开启
List<ConfigEntity> convert = RedisUtil.getCacheList(ConfigKeyNum.config_base.getKey()); List<ConfigEntity> convert = RedisUtil.getCacheList(ConfigKeyNum.config_base.getKey());
AtomicBoolean isOpen= new AtomicBoolean(false); AtomicBoolean isOpen= new AtomicBoolean(false);
Map<String, Object> map = new HashMap<>();
if(convert.isEmpty()){ if(convert.isEmpty()){
return data; return data;
} }
@ -72,7 +72,7 @@ public class CaptchaServiceImpl implements CaptchaService {
//初始化验证码背景 //初始化验证码背景
if (!code.equals("000000")) { if (!"000000".equals(code)) {
switch (captchaProperties.getType()) { switch (captchaProperties.getType()) {
case "LINE": case "LINE":

View File

@ -179,7 +179,7 @@ public class SysConfigServiceImpl extends BaseServiceImpl<SysConfig, SysConfigVo
if (bo.getConfigKey() == null || bo.getConfigKey().isEmpty()) { if (bo.getConfigKey() == null || bo.getConfigKey().isEmpty()) {
continue; continue;
} }
bo.setStatus(0); bo.setStatus(SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue());
bo.setConfigType(1); bo.setConfigType(1);
this.insert(bo); this.insert(bo);
} else { } else {

View File

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sxpcwlkj.common.constant.CacheConstants; import com.sxpcwlkj.common.constant.CacheConstants;
import com.sxpcwlkj.common.enums.SystemCommonEnum;
import com.sxpcwlkj.common.utils.MapstructUtil; import com.sxpcwlkj.common.utils.MapstructUtil;
import com.sxpcwlkj.datasource.entity.page.PageQuery; import com.sxpcwlkj.datasource.entity.page.PageQuery;
import com.sxpcwlkj.datasource.entity.page.TableDataInfo; import com.sxpcwlkj.datasource.entity.page.TableDataInfo;
@ -68,7 +69,7 @@ public class SysDictServiceImpl implements SysDictService {
vos = new ArrayList<>(); vos = new ArrayList<>();
SysDictDataVo sysDictDataVo = new SysDictDataVo(); SysDictDataVo sysDictDataVo = new SysDictDataVo();
sysDictDataVo.setDictType("0"); sysDictDataVo.setDictType("0");
sysDictDataVo.setStatus("0"); sysDictDataVo.setStatus(SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue());
vos.add(sysDictDataVo); vos.add(sysDictDataVo);
} }
sysDictVo.setList(vos); sysDictVo.setList(vos);
@ -123,12 +124,12 @@ public class SysDictServiceImpl implements SysDictService {
@Override @Override
public Integer initSysDict(String code) { public Integer initSysDict(String code) {
List<SysDict> dicts = baseMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getStatus, 0).orderByAsc(SysDict::getSort)); List<SysDict> dicts = baseMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getStatus, SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue()).orderByAsc(SysDict::getSort));
int i = 0; int i = 0;
for (SysDict d : dicts) { for (SysDict d : dicts) {
List<SysDictData> data = sysDictDataMapper.selectList(new LambdaQueryWrapper<SysDictData>() List<SysDictData> data = sysDictDataMapper.selectList(new LambdaQueryWrapper<SysDictData>()
.eq(SysDictData::getFieldName, d.getFieldName()) .eq(SysDictData::getFieldName, d.getFieldName())
.eq(SysDictData::getStatus, 0) .eq(SysDictData::getStatus, SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue())
.orderByAsc(SysDictData::getSort) .orderByAsc(SysDictData::getSort)
); );
RedisUtil.deleteObject(CacheConstants.SYS_DICT_KEY + d.getFieldName()); RedisUtil.deleteObject(CacheConstants.SYS_DICT_KEY + d.getFieldName());
@ -145,12 +146,14 @@ public class SysDictServiceImpl implements SysDictService {
@Override @Override
public List<SysDictDataVo> getSysDictByCode(String code) { public List<SysDictDataVo> getSysDictByCode(String code) {
return sysDictDataMapper.selectVoList(new LambdaQueryWrapper<SysDictData>().eq(SysDictData::getFieldName, code) return sysDictDataMapper.selectVoList(new LambdaQueryWrapper<SysDictData>().eq(SysDictData::getFieldName, code)
.eq(SysDictData::getStatus, 0).orderByAsc(SysDictData::getSort)); .eq(SysDictData::getStatus, SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue()).orderByAsc(SysDictData::getSort));
} }
@Override @Override
public List<Map<String, Object>> selectAll() { public List<Map<String, Object>> selectAll() {
List<SysDictVo> dataVos = baseMapper.selectVoList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getStatus, 0).orderByAsc(SysDict::getSort)); List<SysDictVo> dataVos = baseMapper.selectVoList(new LambdaQueryWrapper<SysDict>()
.eq(SysDict::getStatus, SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue())
.orderByAsc(SysDict::getSort));
List<Map<String, Object>> end = new ArrayList<>(); List<Map<String, Object>> end = new ArrayList<>();
for (SysDictVo dict : dataVos) { for (SysDictVo dict : dataVos) {

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.sxpcwlkj.authority.LoginObject; import com.sxpcwlkj.authority.LoginObject;
import com.sxpcwlkj.common.code.entity.CaptchaEntity; import com.sxpcwlkj.common.code.entity.CaptchaEntity;
import com.sxpcwlkj.common.enums.DeviceEnum; import com.sxpcwlkj.common.enums.DeviceEnum;
import com.sxpcwlkj.common.enums.SystemCommonEnum;
import com.sxpcwlkj.common.exception.LoginException; import com.sxpcwlkj.common.exception.LoginException;
import com.sxpcwlkj.common.exception.MmsException; import com.sxpcwlkj.common.exception.MmsException;
import com.sxpcwlkj.common.exception.TenantException; import com.sxpcwlkj.common.exception.TenantException;
@ -30,8 +31,7 @@ import java.util.Date;
import java.util.Map; import java.util.Map;
/** /**
* @ClassName SysLoginServiceImpl * 系统登录
* @Description TODO
* @Author mmsAdmin * @Author mmsAdmin
* @Date 2022/12/25 12:06 * @Date 2022/12/25 12:06
*/ */
@ -62,7 +62,7 @@ public class SysLoginServiceImpl implements SysLoginService {
throw new LoginException("账号不存在!"); throw new LoginException("账号不存在!");
} }
// 账号是否禁用 // 账号是否禁用
if (sysUser.getStatus() != 0) { if (!sysUser.getStatus().equals(SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue())) {
throw new LoginException("账号已禁用!"); throw new LoginException("账号已禁用!");
} }
//解密数据库的密码 //解密数据库的密码
@ -99,20 +99,20 @@ public class SysLoginServiceImpl implements SysLoginService {
if(sysConfigService.getIsOpenCaptcha()){ if(sysConfigService.getIsOpenCaptcha()){
if(StringUtil.isEmpty(code)){ if(StringUtil.isEmpty(code)){
throw new MmsException("The verification code cannot be empty"); throw new MmsException("验证码不能为空");
} }
Map<String, Object> data = RedisUtil.getCacheObject(uuid); Map<String, Object> data = RedisUtil.getCacheObject(uuid);
if (ObjectUtils.isEmpty(data)) { if (ObjectUtils.isEmpty(data)) {
log.info("登录:验证码失效!"); log.info("登录:验证码失效!");
throw new LoginException("Verification code failure"); throw new LoginException("验证码失效");
} }
if (!codeKey.equals(data.get(CaptchaEntity.CODE.CAPTCHA_KEY.getValue()))) { if (!codeKey.equals(data.get(CaptchaEntity.CODE.CAPTCHA_KEY.getValue()))) {
log.info("登录:验证码与验证对象不匹配!"); log.info("登录:验证码与验证对象不匹配!");
throw new LoginException("Verification code does not match the verification object"); throw new LoginException("验证码与验证对象不匹配");
} }
if (!code.equalsIgnoreCase((String) data.get(CaptchaEntity.CODE.CAPTCHA_VALUE.getValue()))) { if (!code.equalsIgnoreCase((String) data.get(CaptchaEntity.CODE.CAPTCHA_VALUE.getValue()))) {
log.info("登录:验证码不匹配!"); log.info("登录:验证码不匹配!");
throw new LoginException("Verification code does not match"); throw new LoginException("验证码不匹配");
} }
} }
return; return;
@ -121,7 +121,7 @@ public class SysLoginServiceImpl implements SysLoginService {
/** /**
* 验证租户 * 验证租户
* *
* @param sysUser * @param sysUser 用户
*/ */
@Override @Override
public void verfyTenement(SysUser sysUser) { public void verfyTenement(SysUser sysUser) {
@ -130,11 +130,11 @@ public class SysLoginServiceImpl implements SysLoginService {
SysTenant sysTenant = sysTenantService.selectById(sysUser.getTenantId()); SysTenant sysTenant = sysTenantService.selectById(sysUser.getTenantId());
if (ObjectUtils.isEmpty(sysTenant)) { if (ObjectUtils.isEmpty(sysTenant)) {
log.info("登录用户ID{} 租户不存在.", sysUser.getUserId()); log.info("登录用户ID{} 租户不存在.", sysUser.getUserId());
throw new TenantException("tenant.not.exists"); throw new TenantException("租户不存在");
} }
if (sysTenant.getStatus() != 0) { if (!sysTenant.getStatus().equals(SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue())) {
log.info("登录用户ID{} 租户状态为禁用.", sysUser.getUserId()); log.info("登录用户ID{} 租户状态为禁用.", sysUser.getUserId());
throw new TenantException("tenant off state"); throw new TenantException("租户状态为禁用");
} }
} }

View File

@ -103,7 +103,7 @@ public class SysRoleServiceImpl implements SysRoleService {
SysRoleFunction roleFunction = new SysRoleFunction(); SysRoleFunction roleFunction = new SysRoleFunction();
roleFunction.setRoleId(bo.getId()); roleFunction.setRoleId(bo.getId());
roleFunction.setFunctionId(aLong); roleFunction.setFunctionId(aLong);
roleFunction.setStatus(1); roleFunction.setStatus(SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue());
sysRoleFunctionMapper.insert(roleFunction); sysRoleFunctionMapper.insert(roleFunction);
} }
} }
@ -129,7 +129,7 @@ public class SysRoleServiceImpl implements SysRoleService {
SysRoleFunction role = new SysRoleFunction(); SysRoleFunction role = new SysRoleFunction();
role.setRoleId(roleId); role.setRoleId(roleId);
role.setFunctionId(sysRoleFunction.getParentId()); role.setFunctionId(sysRoleFunction.getParentId());
role.setStatus(0); role.setStatus(SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue());
sysRoleFunctionMapper.insert(role); sysRoleFunctionMapper.insert(role);
checkFunction(sysRoleFunction.getParentId(), roleId); checkFunction(sysRoleFunction.getParentId(), roleId);
} }

View File

@ -195,7 +195,7 @@ public class SysUserServiceImpl implements SysUserService {
// 账号查询 // 账号查询
.like(StringUtil.isNotEmpty(bo.getUserName()), "u.user_name", bo.getUserName()) .like(StringUtil.isNotEmpty(bo.getUserName()), "u.user_name", bo.getUserName())
// 账号状态 // 账号状态
.eq(StringUtil.isNotEmpty(bo.getStatus()), "u.status", bo.getStatus()) // .eq(StringUtil.isNotEmpty(bo.getStatus()), "u.status", bo.getStatus())
// 手机号 // 手机号
.like(StringUtil.isNotEmpty(bo.getPhoneNumber()), "u.phonenumber", bo.getPhoneNumber()) .like(StringUtil.isNotEmpty(bo.getPhoneNumber()), "u.phonenumber", bo.getPhoneNumber())
.and(ObjectUtil.isNotNull(bo.getDeptId()), w -> { .and(ObjectUtil.isNotNull(bo.getDeptId()), w -> {
@ -258,8 +258,11 @@ public class SysUserServiceImpl implements SysUserService {
//资源集 //资源集
userVo.setButCodes(list.toArray(String[]::new)); userVo.setButCodes(list.toArray(String[]::new));
//===================超级管理员拥有所有========================== //===================超级管理员拥有所有==========================
if (userVo.getUserId().toString().equals(SystemCommonEnum.SUPER_ADMIN.getValue().toString())) { if (userVo.getUserId().equals(SystemCommonEnum.SUPER_ADMIN.getValue().toString())) {
sysRoles = sysRoleMapper.selectList(new LambdaQueryWrapper<SysRole>().eq(SysRole::getCode, SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue()).like(SysRole::getCode, SystemCommonEnum.SUPER_ADMIN.getCode()).orderByAsc(SysRole::getSort).last("LIMIT 1")); sysRoles = sysRoleMapper.selectList(new LambdaQueryWrapper<SysRole>()
.eq(SysRole::getStatus, SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue())
.like(SysRole::getCode, SystemCommonEnum.SUPER_ADMIN.getCode())
.orderByAsc(SysRole::getSort).last("LIMIT 1"));
sysRoleVos = BeanCopyUtil.convert(sysRoles, SysRoleVo.class); sysRoleVos = BeanCopyUtil.convert(sysRoles, SysRoleVo.class);
List<SysFunction> functionList = sysFunctionMapper.selectList(new LambdaQueryWrapper<SysFunction>().eq(SysFunction::getStatus, SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue()).orderByAsc(SysFunction::getSort)); List<SysFunction> functionList = sysFunctionMapper.selectList(new LambdaQueryWrapper<SysFunction>().eq(SysFunction::getStatus, SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue()).orderByAsc(SysFunction::getSort));

View File

@ -3,14 +3,14 @@ import {getEnv} from "/@/utils/mms";
import {AxiosPromise} from "axios"; import {AxiosPromise} from "axios";
import {SysEnum} from "/@/enums/SysEnum"; import {SysEnum} from "/@/enums/SysEnum";
import {EncryptTypeEnum} from "/@/enums/EncryptTypeEnum"; import {EncryptTypeEnum} from "/@/enums/EncryptTypeEnum";
import {${FunctionName}Bo,${FunctionName}Vo,${FunctionName}Table } from '/@/views/${moduleName}/${functionName}/type'; import {${FunctionName}Bo,${FunctionName}Vo} from '/@/views/${moduleName}/${functionName}/type';
/** /**
* ${tableComment}-Api * ${tableComment}-Api
* ${FunctionName} * ${FunctionName}
*/ */
export function ${functionName}Api() { export function ${functionName}Api() {
return { return {
list: (params?: object): AxiosPromise<${FunctionName}Vo[]> => { list: (params?: object): AxiosPromise<Array<${FunctionName}Vo>> => {
return request({ return request({
url: getEnv()+'/${moduleName}/${functionName}/list', url: getEnv()+'/${moduleName}/${functionName}/list',
method: 'post', method: 'post',

View File

@ -135,17 +135,23 @@
<script setup lang="ts" name="${moduleName}${FunctionName}Dialog"> <script setup lang="ts" name="${moduleName}${FunctionName}Dialog">
import {nextTick, reactive, ref} from "vue"; import {nextTick, reactive, ref} from "vue";
import {CURDEnum} from '/@/enums/CURDEnum'; import {CURDEnum} from '/@/enums/CURDEnum';
import {${FunctionName}Bo, ${FunctionName}Vo} from '/@/views/'; import {${FunctionName}Bo, ${FunctionName}Vo} from '/@/views/${moduleName}/${functionName}/type';
const dialogWidth = ref('50vw'); const dialogWidth = ref('50vw');
<#list fastList as field> <#list fastList as field>
<#if field == 'editor'> <#if field == 'editor'>
dialogWidth.value = '75vw'; dialogWidth.value = '75vw';
import FastEditor from '/@/components/fast-editor/src/fast-editor.vue';
<#elseif field == 'select'> <#elseif field == 'select'>
import FastSelect from '/@/components/fast-select/src/fast-select.vue';
<#elseif field == 'file'> <#elseif field == 'file'>
import FastFile from "/@/components/fast-upload/file.vue"
<#elseif field == 'image'> <#elseif field == 'image'>
import FastImg from "/@/components/fast-upload/img.vue"
<#elseif field == 'images'> <#elseif field == 'images'>
import FastImgs from "/@/components/fast-upload/imgs.vue"
<#elseif field == 'radio'> <#elseif field == 'radio'>
import FastSwitch from "/@/components/fast-switch/src/fast-switch.vue";
</#if> </#if>
</#list> </#list>
// 定义子组件向父组件传值/事件 // 定义子组件向父组件传值/事件

View File

@ -189,9 +189,11 @@
import {CURDEnum} from "/@/enums/CURDEnum"; import {CURDEnum} from "/@/enums/CURDEnum";
import {generateUUID, isEmpty} from "/@/utils/mms"; import {generateUUID, isEmpty} from "/@/utils/mms";
import {NextLoading} from "/@/utils/loading"; import {NextLoading} from "/@/utils/loading";
import {${functionName}Api, ${FunctionName}Bo, ${FunctionName}Vo} from '/@/views/';
import {${FunctionName}Bo, ${FunctionName}Vo} from '/@/views/${moduleName}/${functionName}/type';
import {${functionName}Api} from '/@/views/${moduleName}/${functionName}';
const baseApi = ${functionName}Api(); const baseApi = ${functionName}Api();
<#list formList as field> <#list formList as field>
<#if field.formDict??> <#if field.formDict??>
<#break> <#break>

View File

@ -15,7 +15,7 @@ export declare interface ${FunctionName}Vo extends BaseEntity {
||field.attrName == 'createdTime' ||field.attrName == 'createdTime'
||field.attrName == 'updatedBy' ||field.attrName == 'updatedBy'
||field.attrName == 'updatedTime')> ||field.attrName == 'updatedTime')>
${field.attrName}: string|number<#sep>; </#sep> ${field.attrName}: <#if field.attrType=='Integer'>number</#if><#if field.attrType!='Integer'>string</#if><#sep>; </#sep>
</#if> </#if>
</#list> </#list>
<#if formLayout==2 > <#if formLayout==2 >
@ -39,7 +39,7 @@ export declare interface ${FunctionName}Bo extends BaseEntity {
||field.attrName == 'createdTime' ||field.attrName == 'createdTime'
||field.attrName == 'updatedBy' ||field.attrName == 'updatedBy'
||field.attrName == 'updatedTime')> ||field.attrName == 'updatedTime')>
${field.attrName}: string|number<#sep>; </#sep> ${field.attrName}: <#if field.attrType=='Integer'>number</#if><#if field.attrType!='Integer'>string</#if><#sep>; </#sep>
</#if> </#if>
</#list> </#list>
<#if formLayout==2 > <#if formLayout==2 >

View File

@ -20,12 +20,12 @@ public enum SystemCommonEnum implements IEnum<Integer> {
/** /**
* 系统状态启用 * 系统状态启用
*/ */
SYS_COMMON_STATE_OPEN(0, "common_state","系统状态-启用/有效"), SYS_COMMON_STATE_OPEN(1, "common_state","系统状态-启用/有效"),
/** /**
* 系统状态禁用 * 系统状态禁用
*/ */
SYS_COMMON_STATE_CLOSE(1, "common_state","系统状态-关闭/失效"), SYS_COMMON_STATE_CLOSE(0, "common_state","系统状态-关闭/失效"),
/** /**
* 系统默认头像 * 系统默认头像

View File

@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpStatus; import cn.hutool.http.HttpStatus;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.sxpcwlkj.authority.LoginObject; import com.sxpcwlkj.authority.LoginObject;
import com.sxpcwlkj.common.enums.SystemCommonEnum;
import com.sxpcwlkj.common.exception.MmsException; import com.sxpcwlkj.common.exception.MmsException;
import com.sxpcwlkj.datasource.entity.BaseEntity; import com.sxpcwlkj.datasource.entity.BaseEntity;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -35,7 +36,7 @@ public class MybatisPlusMetaObjectHandler implements MetaObjectHandler {
baseEntity.setCreatedTime(current); baseEntity.setCreatedTime(current);
baseEntity.setUpdatedTime(current); baseEntity.setUpdatedTime(current);
if(baseEntity.getStatus()==null){ if(baseEntity.getStatus()==null){
baseEntity.setStatus(0); baseEntity.setStatus(SystemCommonEnum.SYS_COMMON_STATE_OPEN.getValue());
} }
if(baseEntity.getSort()==null){ if(baseEntity.getSort()==null){
baseEntity.setSort(0); baseEntity.setSort(0);

File diff suppressed because it is too large Load Diff