diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java index fe19249..1ddb166 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java @@ -28,6 +28,14 @@ public class SysRegisterController extends BaseController @PostMapping("/register") public AjaxResult register(@RequestBody RegisterBody user) { + // 1. 先获取配置值并存入变量 + String registerConfig = configService.selectConfigByKey("sys.account.registerUser"); + + // 2. 打印到控制台 + System.out.println("获取到的 Value: [" + registerConfig + "]"); // 加括号能看出是否有空格 + System.out.println("类型判断结果: " + "true".equals(registerConfig)); + System.out.println("======================"); + if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { return error("当前系统没有开启注册功能!"); diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index c40f2aa..037db5c 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -8,7 +8,7 @@ spring: master: url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root - password: A20040303ctw! + password: 123456 # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java index ce609d6..294972e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java @@ -3,6 +3,7 @@ package com.ruoyi.common.core.domain.entity; import java.util.Date; import java.util.List; import javax.validation.constraints.*; + import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.fasterxml.jackson.annotation.JsonProperty; @@ -16,321 +17,333 @@ import com.ruoyi.common.xss.Xss; /** * 用户对象 sys_user - * + * * @author ruoyi */ -public class SysUser extends BaseEntity -{ +public class SysUser extends BaseEntity { private static final long serialVersionUID = 1L; - /** 用户ID */ + /** + * 用户ID + */ @Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号") private Long userId; - /** 部门ID */ + /** + * 部门ID + */ @Excel(name = "部门编号", type = Type.IMPORT) private Long deptId; - /** 用户账号 */ + /** + * 用户账号 + */ @Excel(name = "登录名称") private String userName; - /** 用户昵称 */ + /** + * 用户昵称 + */ @Excel(name = "用户名称") private String nickName; - /** 用户邮箱 */ + /** + * 用户邮箱 + */ @Excel(name = "用户邮箱") private String email; - /** 手机号码 */ + /** + * 手机号码 + */ @Excel(name = "手机号码", cellType = ColumnType.TEXT) private String phonenumber; - /** 用户性别 */ + /** + * 用户性别 + */ @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知") private String sex; - /** 用户头像 */ + /** + * 用户头像 + */ private String avatar; - /** 密码 */ + /** + * 密码 + */ private String password; - /** 账号状态(0正常 1停用) */ + /** + * 账号状态(0正常 1停用) + */ @Excel(name = "账号状态", readConverterExp = "0=正常,1=停用") private String status; - /** 删除标志(0代表存在 2代表删除) */ + /** + * 删除标志(0代表存在 2代表删除) + */ private String delFlag; - /** 最后登录IP */ + /** + * 最后登录IP + */ @Excel(name = "最后登录IP", type = Type.EXPORT) private String loginIp; - /** 最后登录时间 */ + /** + * 最后登录时间 + */ @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT) private Date loginDate; - /** 密码最后更新时间 */ + /** + * 密码最后更新时间 + */ private Date pwdUpdateDate; - /** 部门对象 */ + /** + * 部门对象 + */ @Excels({ - @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), - @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT) + @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), + @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT) }) private SysDept dept; - /** 角色对象 */ + /** + * 角色对象 + */ private List roles; - /** 角色组 */ + /** + * 角色组 + */ private Long[] roleIds; - /** 岗位组 */ + /** + * 岗位组 + */ private Long[] postIds; - /** 角色ID */ + /** + * 角色ID + */ private Long roleId; - public SysUser() - { + /** + * 权限等级 + */ + @Excel(name = "权限等级", readConverterExp = "1=管理员,2=主持人,3=普通用户") + private String userLevel; + + public SysUser() { } - public SysUser(Long userId) - { + public SysUser(Long userId) { this.userId = userId; } - public Long getUserId() - { + public Long getUserId() { return userId; } - public void setUserId(Long userId) - { + public void setUserId(Long userId) { this.userId = userId; } - public boolean isAdmin() - { + public boolean isAdmin() { return SecurityUtils.isAdmin(this.userId); } - public Long getDeptId() - { + public Long getDeptId() { return deptId; } - public void setDeptId(Long deptId) - { + public void setDeptId(Long deptId) { this.deptId = deptId; } @Xss(message = "用户昵称不能包含脚本字符") @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符") - public String getNickName() - { + public String getNickName() { return nickName; } - public void setNickName(String nickName) - { + public void setNickName(String nickName) { this.nickName = nickName; } @Xss(message = "用户账号不能包含脚本字符") @NotBlank(message = "用户账号不能为空") @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符") - public String getUserName() - { + public String getUserName() { return userName; } - public void setUserName(String userName) - { + public void setUserName(String userName) { this.userName = userName; } @Email(message = "邮箱格式不正确") @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") - public String getEmail() - { + public String getEmail() { return email; } - public void setEmail(String email) - { + public void setEmail(String email) { this.email = email; } @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符") - public String getPhonenumber() - { + public String getPhonenumber() { return phonenumber; } - public void setPhonenumber(String phonenumber) - { + public void setPhonenumber(String phonenumber) { this.phonenumber = phonenumber; } - public String getSex() - { + public String getSex() { return sex; } - public void setSex(String sex) - { + public void setSex(String sex) { this.sex = sex; } - public String getAvatar() - { + public String getAvatar() { return avatar; } - public void setAvatar(String avatar) - { + public void setAvatar(String avatar) { this.avatar = avatar; } @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - public String getPassword() - { + public String getPassword() { return password; } - public void setPassword(String password) - { + public void setPassword(String password) { this.password = password; } - public String getStatus() - { + public String getStatus() { return status; } - public void setStatus(String status) - { + public void setStatus(String status) { this.status = status; } - public String getDelFlag() - { + public String getDelFlag() { return delFlag; } - public void setDelFlag(String delFlag) - { + public void setDelFlag(String delFlag) { this.delFlag = delFlag; } - public String getLoginIp() - { + public String getLoginIp() { return loginIp; } - public void setLoginIp(String loginIp) - { + public void setLoginIp(String loginIp) { this.loginIp = loginIp; } - public Date getLoginDate() - { + public Date getLoginDate() { return loginDate; } - public void setLoginDate(Date loginDate) - { + public void setLoginDate(Date loginDate) { this.loginDate = loginDate; } - public Date getPwdUpdateDate() - { + public Date getPwdUpdateDate() { return pwdUpdateDate; } - public void setPwdUpdateDate(Date pwdUpdateDate) - { + public void setPwdUpdateDate(Date pwdUpdateDate) { this.pwdUpdateDate = pwdUpdateDate; } - public SysDept getDept() - { + public SysDept getDept() { return dept; } - public void setDept(SysDept dept) - { + public void setDept(SysDept dept) { this.dept = dept; } - public List getRoles() - { + public List getRoles() { return roles; } - public void setRoles(List roles) - { + public void setRoles(List roles) { this.roles = roles; } - public Long[] getRoleIds() - { + public Long[] getRoleIds() { return roleIds; } - public void setRoleIds(Long[] roleIds) - { + public void setRoleIds(Long[] roleIds) { this.roleIds = roleIds; } - public Long[] getPostIds() - { + public Long[] getPostIds() { return postIds; } - public void setPostIds(Long[] postIds) - { + public void setPostIds(Long[] postIds) { this.postIds = postIds; } - public Long getRoleId() - { + public Long getRoleId() { return roleId; } - public void setRoleId(Long roleId) - { + public void setRoleId(Long roleId) { this.roleId = roleId; } + public String getUserLevel() { + return userLevel; + } + + public void setUserLevel(String userLevel) { + this.userLevel = userLevel; + } + @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("userId", getUserId()) - .append("deptId", getDeptId()) - .append("userName", getUserName()) - .append("nickName", getNickName()) - .append("email", getEmail()) - .append("phonenumber", getPhonenumber()) - .append("sex", getSex()) - .append("avatar", getAvatar()) - .append("password", getPassword()) - .append("status", getStatus()) - .append("delFlag", getDelFlag()) - .append("loginIp", getLoginIp()) - .append("loginDate", getLoginDate()) - .append("pwdUpdateDate", getPwdUpdateDate()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .append("dept", getDept()) - .toString(); + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("userId", getUserId()) + .append("deptId", getDeptId()) + .append("userName", getUserName()) + .append("nickName", getNickName()) + .append("email", getEmail()) + .append("phonenumber", getPhonenumber()) + .append("sex", getSex()) + .append("avatar", getAvatar()) + .append("password", getPassword()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("loginIp", getLoginIp()) + .append("loginDate", getLoginDate()) + .append("pwdUpdateDate", getPwdUpdateDate()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .append("dept", getDept()) + .append("userLevel", getUserLevel()) + .toString() + ; } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java index 868a1fc..69ac005 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java @@ -7,5 +7,15 @@ package com.ruoyi.common.core.domain.model; */ public class RegisterBody extends LoginBody { + private String userLevel; + public String getUserLevel() + { + return userLevel; + } + + public void setUserLevel(String role) + { + this.userLevel = userLevel; + } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java index 8305bcb..486af4e 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java @@ -79,6 +79,7 @@ public class SysRegisterService sysUser.setNickName(username); sysUser.setPwdUpdateDate(DateUtils.getNowDate()); sysUser.setPassword(SecurityUtils.encryptPassword(password)); + sysUser.setUserLevel(registerBody.getUserLevel()); boolean regFlag = userService.registerUser(sysUser); if (!regFlag) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UsersMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UsersMapper.java index 4bd69a8..71428ec 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UsersMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UsersMapper.java @@ -1,6 +1,8 @@ package com.ruoyi.system.mapper; import java.util.List; + +import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.system.domain.Users; /** @@ -58,4 +60,6 @@ public interface UsersMapper * @return 结果 */ public int deleteUsersByIds(Long[] ids); + + SysUser selectUserByUserName(String userName); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index 067245b..0625d5e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -3,6 +3,7 @@ package com.ruoyi.system.service; import java.util.Date; import java.util.List; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.system.domain.Users; /** * 用户 业务层 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index 7b83d04..93764ed 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -5,6 +5,9 @@ import java.util.Date; import java.util.List; import java.util.stream.Collectors; import javax.validation.Validator; + +import com.ruoyi.system.domain.Users; +import com.ruoyi.system.mapper.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -23,11 +26,6 @@ import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.domain.SysUserPost; import com.ruoyi.system.domain.SysUserRole; -import com.ruoyi.system.mapper.SysPostMapper; -import com.ruoyi.system.mapper.SysRoleMapper; -import com.ruoyi.system.mapper.SysUserMapper; -import com.ruoyi.system.mapper.SysUserPostMapper; -import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysUserService; @@ -107,7 +105,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 通过用户名查询用户 - * + * * @param userName 用户名 * @return 用户对象信息 */ diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 6138f37..7b848e4 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -24,6 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -48,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.pwd_update_date, u.create_by, u.create_time, u.remark, + select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.pwd_update_date, u.create_by, u.create_time, u.remark,u.user_level, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status from sys_user u @@ -58,7 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + insert into users diff --git a/ruoyi-ui/src/views/cesiumMap/index.vue b/ruoyi-ui/src/views/cesiumMap/index.vue index 6d491f4..e58381f 100644 --- a/ruoyi-ui/src/views/cesiumMap/index.vue +++ b/ruoyi-ui/src/views/cesiumMap/index.vue @@ -212,7 +212,8 @@ export default { // 绘制相关 drawingMode: null, // 'point', 'line', 'polygon', 'rectangle', 'circle' drawingHandler: null, - tempEntity: null, + tempEntity: null, // 最终实体 + tempPreviewEntity: null, // 预览实体(新增) drawingPoints: [], drawingStartPoint: null, isDrawing: false, @@ -462,20 +463,26 @@ export default { stopDrawing() { if (this.drawingHandler) { - this.drawingHandler.destroy() - this.drawingHandler = null + this.drawingHandler.destroy(); + this.drawingHandler = null; } if (this.tempEntity) { - this.viewer.entities.remove(this.tempEntity) - this.tempEntity = null + this.viewer.entities.remove(this.tempEntity); + this.tempEntity = null; + } + + // 确保也清理预览实体 + if (this.tempPreviewEntity) { + this.viewer.entities.remove(this.tempPreviewEntity); + this.tempPreviewEntity = null; } - this.drawingPoints = [] - this.drawingStartPoint = null - this.isDrawing = false + this.drawingPoints = []; + this.drawingStartPoint = null; + this.isDrawing = false; - this.viewer.scene.canvas.style.cursor = 'default' + this.viewer.scene.canvas.style.cursor = 'default'; }, // ******************************************************************** // 绘制点 @@ -491,52 +498,95 @@ export default { // 绘制线 startLineDrawing() { + this.drawingPoints = []; + + // 鼠标点击事件 - 添加点 this.drawingHandler.setInputAction((click) => { - const position = this.getClickPosition(click.position) + const position = this.getClickPosition(click.position); if (position) { - this.drawingPoints.push(position) - - // 更新临时线 - if (this.tempEntity) { - this.viewer.entities.remove(this.tempEntity) + this.drawingPoints.push(position); + + // 如果这是第一个点,创建一个与自身连接的线段(看起来像一个点) + if (this.drawingPoints.length === 1) { + const previewPositions = [position, position]; + + if (this.tempPreviewEntity) { + this.viewer.entities.remove(this.tempPreviewEntity); + } + + this.tempPreviewEntity = this.viewer.entities.add({ + polyline: { + positions: previewPositions, + width: this.defaultStyles.line.width, + material: Cesium.Color.fromCssColorString(this.defaultStyles.line.color).withAlpha(0.5), + clampToGround: true + } + }); } + } + }, Cesium.ScreenSpaceEventType.LEFT_CLICK); - if (this.drawingPoints.length > 1) { - this.tempEntity = this.viewer.entities.add({ + // 鼠标移动事件 - 实时更新预览线段 + this.drawingHandler.setInputAction((movement) => { + if (this.drawingPoints.length > 0) { + const mousePosition = this.getClickPosition(movement.endPosition); + if (mousePosition) { + // 创建包含当前鼠标位置的预览线段 + const previewPositions = [...this.drawingPoints, mousePosition]; + + // 如果已有预览线段,先移除 + if (this.tempPreviewEntity) { + this.viewer.entities.remove(this.tempPreviewEntity); + } + + // 创建预览线段(半透明效果),显示实时轨迹 + this.tempPreviewEntity = this.viewer.entities.add({ polyline: { - positions: this.drawingPoints, + positions: previewPositions, width: this.defaultStyles.line.width, - material: Cesium.Color.fromCssColorString(this.defaultStyles.line.color), + material: Cesium.Color.fromCssColorString(this.defaultStyles.line.color).withAlpha(0.5), // 半透明效果 clampToGround: true } - }) + }); } } - }, Cesium.ScreenSpaceEventType.LEFT_CLICK) + }, Cesium.ScreenSpaceEventType.MOUSE_MOVE); // 右键完成绘制 this.drawingHandler.setInputAction(() => { if (this.drawingPoints.length > 1) { - this.finishLineDrawing() + this.finishLineDrawing(); } else { - this.cancelDrawing() + this.cancelDrawing(); } - }, Cesium.ScreenSpaceEventType.RIGHT_CLICK) + }, Cesium.ScreenSpaceEventType.RIGHT_CLICK); }, finishLineDrawing() { - const positions = [...this.drawingPoints] - const entity = this.addLineEntity(positions) - - // 计算长度 - const length = this.calculateLineLength(positions) - this.measurementResult = { - distance: length, - type: 'line' + // 将预览线段转换为最终线段 + if (this.drawingPoints.length > 1) { + // 移除预览线段 + if (this.tempPreviewEntity) { + this.viewer.entities.remove(this.tempPreviewEntity); + this.tempPreviewEntity = null; + } + + // 创建最终的实线实体 + const entity = this.addLineEntity([...this.drawingPoints]); + + // 计算长度 + const length = this.calculateLineLength([...this.drawingPoints]); + this.measurementResult = { + distance: length, + type: 'line' + }; + + this.stopDrawing(); + return entity; + } else { + this.cancelDrawing(); + return null; } - - this.stopDrawing() - return entity }, // 绘制多边形 diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue index ba5ede5..7699328 100644 --- a/ruoyi-ui/src/views/login.vue +++ b/ruoyi-ui/src/views/login.vue @@ -14,14 +14,14 @@