Browse Source

区分超管和普通用户

master
review512jwy@163.com 3 months ago
parent
commit
d4c46951d9
  1. 19
      document/db/init.sql
  2. 4
      model2d3d-viewer-back-dao/src/main/resources/mappers/auto/BasicCompanyMapper.xml
  3. 3
      model2d3d-viewer-back-dao/src/main/resources/mappers/auto/BasicUserMapper.xml
  4. 8
      model2d3d-viewer-back-dao/src/main/resources/mappers/ex/BasicUserMapperExt.xml
  5. 2
      model2d3d-viewer-back-model/src/main/java/com/model2d3d/viewer/back/dto/account/CacheUserData.java
  6. 6
      model2d3d-viewer-back-model/src/main/java/com/model2d3d/viewer/back/dto/user/OptUserParam.java
  7. 8
      model2d3d-viewer-back-model/src/main/java/com/model2d3d/viewer/back/model/BasicCompany.java
  8. 4
      model2d3d-viewer-back-model/src/main/java/com/model2d3d/viewer/back/model/BasicUser.java
  9. 8
      model2d3d-viewer-back-model/src/main/java/com/model2d3d/viewer/back/vo/user/UserPageDTO.java
  10. 7
      model2d3d-viewer-back-service/src/main/java/com/model2d3d/viewer/back/service/impl/AccountServiceImpl.java
  11. 27
      model2d3d-viewer-back-service/src/main/java/com/model2d3d/viewer/back/service/impl/UserServiceImpl.java

19
document/db/init.sql

@ -24,6 +24,7 @@ CREATE TABLE `basic_company` (
`id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`parent_id` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`company_name` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`apikey` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`flag` int DEFAULT '0' COMMENT '0-正常,1-删除',
`create_time` bigint DEFAULT NULL,
`modify_time` bigint DEFAULT NULL,
@ -32,7 +33,7 @@ CREATE TABLE `basic_company` (
/*Data for the table `basic_company` */
insert into `basic_company`(`id`,`parent_id`,`company_name`,`flag`,`create_time`,`modify_time`) values ('1','-1','MiniSolution',0,1658978002231,1658978002231);
insert into `basic_company`(`id`,`parent_id`,`company_name`,`apikey`,`flag`,`create_time`,`modify_time`) values ('1','-1','MiniSolution','1234567890',0,1658978002231,1658978002231);
/*Table structure for table `basic_menu` */
DROP TABLE IF EXISTS `basic_menu`;
@ -62,9 +63,9 @@ CREATE TABLE `basic_role` (
`role_name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`description` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`flag` int DEFAULT '0' COMMENT '0-正常,1-删除',
`creator_id` bigint DEFAULT NULL,
`creator_id` varchar(50) DEFAULT NULL,
`create_time` bigint DEFAULT NULL,
`modifier_id` bigint DEFAULT NULL,
`modifier_id` varchar(50) DEFAULT NULL,
`modify_time` bigint DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
@ -76,7 +77,7 @@ DROP TABLE IF EXISTS `basic_role_menu_relation`;
CREATE TABLE `basic_role_menu_relation` (
`role_id` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`menu_id` bigint DEFAULT NULL,
`creator_id` bigint DEFAULT NULL,
`creator_id` varchar(50) DEFAULT NULL,
`create_time` bigint DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
@ -88,7 +89,7 @@ DROP TABLE IF EXISTS `basic_role_user_relation`;
CREATE TABLE `basic_role_user_relation` (
`user_id` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`role_id` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`creator_id` bigint DEFAULT NULL,
`creator_id` varchar(50) DEFAULT NULL,
`create_time` bigint DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
@ -100,9 +101,9 @@ DROP TABLE IF EXISTS `basic_user`;
CREATE TABLE `basic_user` (
`id` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
`company_id` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
`shop_uuid` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`username` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`login_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`role` int DEFAULT '2' COMMENT '1-超管,2-普通用户',
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`password_modify_time` bigint DEFAULT NULL,
`salt` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
@ -113,15 +114,15 @@ CREATE TABLE `basic_user` (
`flag` int NOT NULL DEFAULT '0' COMMENT '0-正常,1-删除',
`expire_time` bigint DEFAULT '4114487556000',
`create_time` bigint DEFAULT NULL,
`creator_id` bigint DEFAULT NULL,
`creator_id` varchar(50) DEFAULT NULL,
`modify_time` bigint DEFAULT NULL,
`modifier_id` bigint DEFAULT NULL,
`modifier_id` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*Data for the table `basic_user` */
insert into `basic_user`(`id`,`company_id`,`shop_uuid`,`username`,`login_name`,`password`,`password_modify_time`,`salt`,`email`,`mobile_number`,`last_login_time`,`remark`,`flag`,`expire_time`,`create_time`,`creator_id`,`modify_time`,`modifier_id`) values ('1','1','1','admin_name','admin','nVg+buw0YAs=',1670312031273,'09bc3a7898','1053492832@qq.com',NULL,1743496632944,NULL,0,4114487556000,NULL,NULL,NULL,NULL);
insert into `basic_user`(`id`,`company_id`,`username`,`login_name`,`role`,`password`,`password_modify_time`,`salt`,`email`,`mobile_number`,`last_login_time`,`remark`,`flag`,`expire_time`,`create_time`,`creator_id`,`modify_time`,`modifier_id`) values ('1','1','admin_name','admin','1','nVg+buw0YAs=',1670312031273,'09bc3a7898','1053492832@qq.com',NULL,1743496632944,NULL,0,4114487556000,NULL,NULL,NULL,NULL);
/*Table structure for table `login_history` */
DROP TABLE IF EXISTS `login_history`;

4
model2d3d-viewer-back-dao/src/main/resources/mappers/auto/BasicCompanyMapper.xml

@ -7,15 +7,15 @@
<id column="id" property="id" />
<result column="parent_id" property="parentId" />
<result column="company_name" property="companyName" />
<result column="apikey" property="apikey" />
<result column="flag" property="flag" />
<result column="create_time" property="createTime" />
<result column="modify_time" property="modifyTime" />
<result column="apikey" property="apikey" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, parent_id, company_name, flag, create_time, modify_time, apikey
id, parent_id, company_name, apikey, flag, create_time, modify_time
</sql>
</mapper>

3
model2d3d-viewer-back-dao/src/main/resources/mappers/auto/BasicUserMapper.xml

@ -8,6 +8,7 @@
<result column="company_id" property="companyId" />
<result column="username" property="username" />
<result column="login_name" property="loginName" />
<result column="role" property="role" />
<result column="password" property="password" />
<result column="password_modify_time" property="passwordModifyTime" />
<result column="salt" property="salt" />
@ -25,7 +26,7 @@
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, company_id, username, login_name, password, password_modify_time, salt, email, mobile_number, last_login_time, remark, flag, expire_time, create_time, creator_id, modify_time, modifier_id
id, company_id, username, login_name, role, password, password_modify_time, salt, email, mobile_number, last_login_time, remark, flag, expire_time, create_time, creator_id, modify_time, modifier_id
</sql>
</mapper>

8
model2d3d-viewer-back-dao/src/main/resources/mappers/ex/BasicUserMapperExt.xml

@ -20,20 +20,17 @@
bcom.id companyId,
bcom.company_name companyName,
buser.id userId,
buser.role,
buser.username username,
buser.login_name loginName,
buser.email,
buser.mobile_number mobileNumber,
buser.create_time createTime,
any_value(brole.id) roleId,
any_value(brole.role_name) roleName,
ubrelation.buildingIds,
ubrelation.buildingNames
FROM
basic_user buser
INNER JOIN basic_company bcom ON buser.company_id = bcom.id
INNER JOIN basic_role_user_relation brur ON brur.user_id = buser.id
INNER JOIN basic_role brole ON brur.role_id = brole.id
LEFT JOIN
(
SELECT
@ -48,7 +45,7 @@
user_building_relation.user_id
) ubrelation ON buser.id = ubrelation.user_id
WHERE
buser.flag != 1 AND brole.flag != 1 AND buser.company_id IN <foreach collection="params.companyIdList" item="item" open="(" separator="," close=")">#{item}</foreach>
buser.flag != 1 AND buser.company_id IN <foreach collection="params.companyIdList" item="item" open="(" separator="," close=")">#{item}</foreach>
<if test="params.userId != null">
AND buser.id != #{params.userId}
</if>
@ -90,6 +87,7 @@
buser.company_id,
buser.username,
buser.login_name,
buser.role,
buser.`password`,
buser.salt,
buser.email,

2
model2d3d-viewer-back-model/src/main/java/com/model2d3d/viewer/back/dto/account/CacheUserData.java

@ -18,6 +18,6 @@ public class CacheUserData {
private Long createTime;
private Long expireTime;
private String menuIds;
// private String userGroupIds;
private Integer role;
}

6
model2d3d-viewer-back-model/src/main/java/com/model2d3d/viewer/back/dto/user/OptUserParam.java

@ -7,6 +7,7 @@ import jakarta.validation.constraints.NotEmpty;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import java.util.List;
@ -22,8 +23,9 @@ public class OptUserParam {
@Schema(description ="用户ID, 新增时无此参数",example = "111", required = false)
private String userId;
@Schema(description ="角色ID",example = "24", required = false)
private String roleId;
@Range(min = 1, max = 2, message = "1005")
@Schema(description ="1-超管,2-普通用户",example = "2", required = true)
private Integer role;
@NotBlank(message = "1001")
@Length(max = 255,message = "1002")

8
model2d3d-viewer-back-model/src/main/java/com/model2d3d/viewer/back/model/BasicCompany.java

@ -30,6 +30,10 @@ public class BasicCompany implements Serializable {
@Schema(description = "")
private String companyName;
@TableField("apikey")
@Schema(description = "")
private String apikey;
@TableField("flag")
@Schema(description = "0-正常,1-删除")
private Integer flag;
@ -42,9 +46,5 @@ public class BasicCompany implements Serializable {
@Schema(description = "")
private Long modifyTime;
@TableField("apikey")
@Schema(description = "")
private String apikey;
}

4
model2d3d-viewer-back-model/src/main/java/com/model2d3d/viewer/back/model/BasicUser.java

@ -34,6 +34,10 @@ public class BasicUser implements Serializable {
@Schema(description = "")
private String loginName;
@TableField("role")
@Schema(description = "1-超管,2-普通用户")
private Integer role;
@TableField("password")
@Schema(description = "")
private String password;

8
model2d3d-viewer-back-model/src/main/java/com/model2d3d/viewer/back/vo/user/UserPageDTO.java

@ -2,6 +2,7 @@ package com.model2d3d.viewer.back.vo.user;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
/**
* @author Mr.Jiang
@ -19,11 +20,8 @@ public class UserPageDTO {
@Schema(description ="用户ID, 新增时无此参数",example = "111", required = false)
private String userId;
@Schema(description ="角色ID",example = "24", required = false)
private String roleId;
@Schema(description ="角色名",example = "24", required = false)
private String roleName;
@Schema(description ="1-超管,2-普通用户",example = "2", required = true)
private Integer role;
@Schema(description ="用户名",example = "管理员", required = true)
private String username;

7
model2d3d-viewer-back-service/src/main/java/com/model2d3d/viewer/back/service/impl/AccountServiceImpl.java

@ -4,6 +4,7 @@ import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.model2d3d.viewer.back.model.BasicUser;
import com.model2d3d.viewer.back.model.LoginHistory;
import com.model2d3d.viewer.back.util.redis.RedisUtil;
@ -145,6 +146,7 @@ public class AccountServiceImpl implements AccountService {
cacheUserData.setCreateTime(userInfoVO.getCreateTime());
cacheUserData.setLoginName(userInfoVO.getLoginName());
cacheUserData.setUserId(userInfoVO.getId());
cacheUserData.setRole(userInfoVO.getRole());
cacheUserData.setUsername(userInfoVO.getUsername());
cacheUserData.setExpireTime(userInfoVO.getExpireTime());
cacheUserData.setCompanyId(userInfoVO.getCompanyId());
@ -189,7 +191,10 @@ public class AccountServiceImpl implements AccountService {
}
private void updateUserInfo(BasicUser basicUser) {
basicUserMapperExt.updateById(basicUser);
LambdaUpdateWrapper<BasicUser> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(BasicUser::getId, basicUser.getId())
.set(BasicUser::getLastLoginTime, basicUser.getLastLoginTime());
basicUserMapperExt.update(null, updateWrapper);
}
private UserInfoVO getAccountInfo(String loginname) {

27
model2d3d-viewer-back-service/src/main/java/com/model2d3d/viewer/back/service/impl/UserServiceImpl.java

@ -116,7 +116,7 @@ public class UserServiceImpl implements UserService {
basicUserMapperExt.insert(basicUser);
insertUserRoleRelation(userId, currentUnix, basicUser.getId(), param.getRoleId());
// insertUserRoleRelation(userId, currentUnix, basicUser.getId(), param.getRoleId());
insertUserBuildingRelation(userId, currentUnix, basicUser.getId(), param.getBuildingIds());
@ -245,13 +245,14 @@ public class UserServiceImpl implements UserService {
.set(BasicUser::getCompanyId, param.getCompanyId())
.set(BasicUser::getUsername, param.getUsername())
.set(BasicUser::getLoginName, param.getLoginName())
.set(BasicUser::getRole, param.getRole())
.set(BasicUser::getEmail, param.getEmail())
.set(BasicUser::getMobileNumber, param.getMobileNumber())
.set(BasicUser::getModifierId, userId)
.set(BasicUser::getModifyTime, currentUnix);
basicUserMapperExt.update(null, updateWrapper);
insertUserRoleRelation(userId, currentUnix, param.getUserId(), param.getRoleId());
// insertUserRoleRelation(userId, currentUnix, param.getUserId(), param.getRoleId());
insertUserBuildingRelation(userId, currentUnix, param.getUserId(), param.getBuildingIds());
@ -319,8 +320,7 @@ public class UserServiceImpl implements UserService {
return SimpleDataResponse.success();
}
try {
List<Long> ids = Arrays.asList(StringUtils.split(resetPassword.getUserIds(), ",")).stream()
.map(id -> CommonUtil.String2Long(id.trim())).collect(Collectors.toList());
List<String> ids = Arrays.asList(StringUtils.split(resetPassword.getUserIds(), ","));
List<BasicUser> userList = basicUserMapperExt.selectList(
new LambdaQueryWrapper<BasicUser>()
@ -331,9 +331,12 @@ public class UserServiceImpl implements UserService {
long currentUnix = System.currentTimeMillis();
for (BasicUser basicUser : userList) {
String rawPwd = generateRandomPwd();
basicUser.setPassword(DESUtil.encrypt(rawPwd, basicUser.getSalt()));
// basicUser.setPasswordModifyTime(currentUnix);
basicUserMapperExt.updateById(basicUser);
LambdaUpdateWrapper<BasicUser> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(BasicUser::getId, basicUser.getId())
.set(BasicUser::getPassword, DESUtil.encrypt(rawPwd, basicUser.getSalt()))
.set(BasicUser::getPasswordModifyTime, currentUnix);
basicUserMapperExt.update(null, updateWrapper);
BasicCompany basicCompany = basicCompanyMapperExt.selectById(basicUser.getCompanyId());
@ -377,10 +380,12 @@ public class UserServiceImpl implements UserService {
if (newPwd.equals(basicUser.getPassword())) {
return new SimpleDataResponse(ResponseCode.MSG_ERROR, msgLanguageChange.getParameterMapByCode(languageType, "newPwdSameOld"));
}
basicUser.setPassword(newPwd);
basicUser.setModifyTime(System.currentTimeMillis());
// basicUser.setPasswordModifyTime(basicUser.getModifyTime());
basicUserMapperExt.updateById(basicUser);
LambdaUpdateWrapper<BasicUser> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(BasicUser::getId, basicUser.getId())
.set(BasicUser::getPassword, newPwd)
.set(BasicUser::getPasswordModifyTime, System.currentTimeMillis());
basicUserMapperExt.update(null, updateWrapper);
return SimpleDataResponse.success();
} catch (Exception e) {

Loading…
Cancel
Save