浏览代码

fix: 修复bug

wuweihao 4 年之前
父节点
当前提交
a4298a3534

+ 13 - 5
gis_admin/src/main/java/com/gis/admin/controller/LoginController.java

@@ -1,5 +1,6 @@
 package com.gis.admin.controller;
 
+import com.gis.admin.entity.po.SysRoleEntity;
 import com.gis.common.base.entity.po.LogEntity;
 import com.gis.common.base.service.LogService;
 import com.gis.common.constant.ConfigConstant;
@@ -88,10 +89,12 @@ public class LoginController {
         }
 
         Long userId = entity.getId();
-        Object role = getRole(userId);
+//        Object role = getRole(userId);
+        SysRoleEntity role = getRole(userId);
         log.info("role: {}", role);
+        String roleKey = role.getRoleKey();
 
-         if ("cms".equals(from) && ((Set) role).contains("sys_visitor")) {
+        if ("cms".equals(from) && roleKey.contains("sys_visitor")) {
                  log.error("游客不能登录管理后台");
                  return Result.failure("非法用户");
          }
@@ -113,7 +116,7 @@ public class LoginController {
         HashMap<String, Object> tokenMap = new HashMap<>();
         tokenMap.put("userName", entity.getUserName());
         tokenMap.put("id", userId);
-        tokenMap.put("role", role);
+        tokenMap.put("role", getRoleKey(userId));
 
         String token = JwtUtil.createJWT(TOKEN_EXPIRE, tokenMap);
 
@@ -122,7 +125,8 @@ public class LoginController {
         result.put("user", entity);
         result.put("token", token);
         // 角色控制系统管理(sys_admin)、内容管理
-        result.put("role", role);
+        result.put("role", roleKey);
+        result.put("roleName", role.getRoleName());
 
 
         // 保存操作日志
@@ -177,10 +181,14 @@ public class LoginController {
      * @param userId
      * @return
      */
-    private Set<String> getRole(Long userId){
+    private Set<String> getRoleKey(Long userId){
         Set<String> roleKeys = sysRoleService.findRoleKeyByUserId(userId);
         return roleKeys;
     }
 
+    private SysRoleEntity getRole(Long userId){
+        return sysRoleService.findByUserId(userId);
+    }
+
 
 }

+ 8 - 7
gis_admin/src/main/java/com/gis/admin/controller/SysUserController.java

@@ -50,13 +50,14 @@ public class SysUserController {
     @ApiOperation("查询用户信息")
     @GetMapping("detail/{id}")
     public Result<SysUserEntity> detail(@PathVariable Long id) {
-        SysUserEntity user = userService.findById(id);
-
-        if (user == null) {
-            log.error("用户不存在: {}", id);
-            return Result.failure("用户不存在");
-        }
-        return Result.success(user);
+//        SysUserEntity user = userService.findById(id);
+//
+//        if (user == null) {
+//            log.error("用户不存在: {}", id);
+//            return Result.failure("用户不存在");
+//        }
+//        return Result.success(user);
+        return userService.detail(id);
     }
 
     @WebControllerLog(description = "用户管理-修改密码", addDb = true)

+ 11 - 0
gis_admin/src/main/java/com/gis/admin/entity/dto/UserDto.java

@@ -53,6 +53,9 @@ public class UserDto {
     @ApiModelProperty(value = "缩略图url")
     private String thumb;
 
+    @ApiModelProperty(value = "状态 0:启用(默认值)  1:禁用")
+    private Integer isDisable;
+
 
 //    @NotNull(message = "角色不能为空")
 //    @ApiModelProperty(value = "角色,sys_admin:系统管理员,sys_high:高级管理员, sys_normal:普通管理员, sys_visitor:游客" ,required = true)
@@ -61,4 +64,12 @@ public class UserDto {
     @ApiModelProperty(value = "角色id",notes = "目前一个用户只有一个角色", required = true)
     private Long roleId;
 
+//    @NotBlank(message = "旧密码不能为空")
+    @ApiModelProperty(value = "旧密码", name = "oldPassword")
+    private String oldPassword;
+
+//    @NotBlank(message = "新密码不能为空")
+    @ApiModelProperty(value = "新密码", name = "newPassword")
+    private String newPassword;
+
 }

+ 5 - 0
gis_admin/src/main/java/com/gis/admin/entity/po/SysUserEntity.java

@@ -7,6 +7,7 @@ import lombok.Data;
 
 import javax.persistence.Entity;
 import javax.persistence.Table;
+import javax.persistence.Transient;
 import java.io.Serializable;
 
 /**
@@ -59,6 +60,10 @@ public class SysUserEntity extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "角色,sys_admin:系统管理员,sys_high:高级管理员, sys_normal:普通管理员, sys_visitor:游客")
     private String role;
 
+    @Transient
+    @ApiModelProperty(value = "角色id")
+    private Integer roleId;
+
 
 
 }

+ 3 - 0
gis_admin/src/main/java/com/gis/admin/mapper/SysRoleMapper.java

@@ -43,4 +43,7 @@ public interface SysRoleMapper extends IBaseMapper<SysRoleEntity, Long> {
 
     @SelectProvider(type = SysRoleProvider.class, method = "search")
     List<SysRoleEntity> listCount(PageDto param);
+
+    @Select(value = "select a.* from sys_role a left join sys_user_role b on a.id = b.role_id where a.is_delete=0 and b.user_id = #{userId}")
+    SysRoleEntity findByUserId(Long userId);
 }

+ 2 - 1
gis_admin/src/main/java/com/gis/admin/mapper/SysUserMapper.java

@@ -16,5 +16,6 @@ public interface SysUserMapper extends IBaseMapper<SysUserEntity, Long> {
     @Select(value = "select * from sys_user where is_delete = '0' AND user_name= #{userName}")
     SysUserEntity findByUserName(String userName);
 
-
+    @Select(value = "select a.*, b.role_id as roleId from sys_user a left join sys_user_role b on b.user_id = a.id where a.is_delete = '0' AND a.id= #{id}")
+    SysUserEntity detailMapper(Long id);
 }

+ 2 - 0
gis_admin/src/main/java/com/gis/admin/service/SysRoleService.java

@@ -35,4 +35,6 @@ public interface SysRoleService extends IBaseService<SysRoleEntity, Long> {
     Result editStatus(Long id, Integer isDisable);
 
     Result listCount(PageDto param);
+
+    SysRoleEntity findByUserId(Long userId);
 }

+ 2 - 0
gis_admin/src/main/java/com/gis/admin/service/SysUserService.java

@@ -33,4 +33,6 @@ public interface SysUserService extends IBaseService<SysUserEntity, Long> {
     Result register(RegisterDto param);
 
     Result getRole();
+
+    Result<SysUserEntity> detail(Long id);
 }

+ 11 - 4
gis_admin/src/main/java/com/gis/admin/service/impl/SysRoleServiceImpl.java

@@ -76,12 +76,13 @@ public class SysRoleServiceImpl extends IBaseServiceImpl<SysRoleEntity, Long> im
 
 
         SysRoleEntity roleEntity = null;
-        int n = 0;
+        boolean flag = false;
 
         if (param.getId() == null) {
             roleEntity = new SysRoleEntity();
             BeanUtils.copyProperties(param, roleEntity);
-            n = this.save(roleEntity);
+            this.save(roleEntity);
+            flag = true;
         } else {
             roleEntity = this.findById(param.getId());
             if (roleEntity == null) {
@@ -91,14 +92,15 @@ public class SysRoleServiceImpl extends IBaseServiceImpl<SysRoleEntity, Long> im
             }
             BeanUtils.copyProperties(param, roleEntity);
             roleEntity.setUpdateTime(LocalDateTime.now());
-            n = this.update(roleEntity);
+            this.update(roleEntity);
 
             // 每次修改,删除角色资源表信息,重新添加
             this.deleteRoleResource(param.getId());
+            flag = true;
         }
 
         // 添加权限
-        if (n >= 0){
+        if (flag){
             if (param.getResources() != null){
                 for (long i : param.getResources()) {
                     this.saveRoleResource(roleEntity.getId(), i);
@@ -174,5 +176,10 @@ public class SysRoleServiceImpl extends IBaseServiceImpl<SysRoleEntity, Long> im
         return Result.success(new PageInfo<>(lists));
     }
 
+    @Override
+    public SysRoleEntity findByUserId(Long userId) {
+        return entityMapper.findByUserId(userId);
+    }
+
 
 }

+ 42 - 0
gis_admin/src/main/java/com/gis/admin/service/impl/SysUserServiceImpl.java

@@ -4,6 +4,7 @@ import com.gis.admin.entity.po.SysRoleEntity;
 import com.gis.common.base.aop.WebControllerLog;
 import com.gis.common.base.entity.dto.PageDto;
 import com.gis.common.base.entity.po.LogEntity;
+import com.gis.common.base.exception.BaseRuntimeException;
 import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.common.base.service.LogService;
 import com.gis.common.base.service.impl.IBaseServiceImpl;
@@ -79,6 +80,16 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
             entity.setUpdateTime(LocalDateTime.now());
             this.update(entity);
 
+            // 更新密码
+            String oldPassword = param.getOldPassword();
+            String newPassword = param.getNewPassword();
+            if (oldPassword !=null && newPassword != null) {
+                PasswordDto dto = new PasswordDto();
+                dto.setOldPassword(oldPassword);
+                dto.setNewPassword(newPassword);
+                updatePassword(dto);
+            }
+
             // 每次修改,删除用户角色表信息,重新添加
             sysRoleService.deleteUserRoleByUserId(id);
         }
@@ -119,6 +130,22 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
         return Result.success(page);
     }
 
+
+    private void updatePassword(PasswordDto param) {
+        SysUserEntity user = this.findByUserName(JwtUtil.getUsername(getToken()));
+
+        // 验证原密码
+        Boolean isBoolean = PasswordUtils.decrypt(user.getPassword(), param.getOldPassword(), PasswordUtils.getStaticSalt());
+        if (!isBoolean) {
+            log.error("原始密码错误");
+            throw new BaseRuntimeException("原始密码错误");
+        }
+
+        user.setPassword(PasswordUtils.encrypt(user.getUserName(), param.getNewPassword(), PasswordUtils.getStaticSalt()));
+        user.setUpdateTime(LocalDateTime.now());
+        this.update(user);
+    }
+
     @Override
     public Result updatePwd(PasswordDto param) {
         SysUserEntity user = this.findByUserName(JwtUtil.getUsername(getToken()));
@@ -207,5 +234,20 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
         return Result.success(sysRoleService.findAll(condition));
     }
 
+    @Override
+    public Result<SysUserEntity> detail(Long id) {
+//        SysUserEntity user = this.findById(id);
+//
+//        if (user == null) {
+//            log.error("用户不存在: {}", id);
+//            return Result.failure("用户不存在");
+//        }
+
+        SysUserEntity user = entityMapper.detailMapper(id);
+
+
+        return Result.success(user);
+    }
+
 
 }

+ 1 - 0
gis_cms/src/main/java/com/gis/cms/entity/dto/QuestionAnswerDto.java

@@ -1,5 +1,6 @@
 package com.gis.cms.entity.dto;
 
+import com.alibaba.fastjson.JSONObject;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 1 - 0
gis_cms/src/main/java/com/gis/cms/entity/po/QuestionAnswerEntity.java

@@ -1,5 +1,6 @@
 package com.gis.cms.entity.po;
 
+import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.annotation.JSONField;
 import com.gis.common.base.entity.po.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;

+ 4 - 1
gis_cms/src/main/java/com/gis/cms/mapper/QuestionAnswerMapper.java

@@ -21,6 +21,9 @@ public interface QuestionAnswerMapper extends IBaseMapper<QuestionAnswerEntity,
     @Select("select * from tb_question_answer where is_delete=0 and question_group_id=#{questionGroupId}")
     List<QuestionAnswerEntity> findByQuestionGroupId(Long questionGroupId);
 
-    @Update("update tb_question_answer set question_group_id = #{questionGroupId} , update_time = NOW() where is_delete = 0 and id in ${answerIds} ")
+    @Update("update tb_question_answer set question_group_id = #{questionGroupId} , update_time = NOW() where is_delete = 0 and id in ( ${answerIds} ) ")
     void updateQuestionGroupId(Long questionGroupId, String answerIds);
+
+    @Update("update tb_question_answer set question_group_id = 0 , update_time = NOW() where is_delete = 0 and question_group_id=#{questionGroupId} ")
+    void disableByQuestionGroupId(Long groupId);
 }

+ 2 - 0
gis_cms/src/main/java/com/gis/cms/service/QuestionAnswerService.java

@@ -34,4 +34,6 @@ public interface QuestionAnswerService extends IBaseService<QuestionAnswerEntity
     List<QuestionAnswerEntity> findByQuestionGroupId(Long questionGroupId);
 
     void updateQuestionGroupId(Long id, String answerIds);
+
+    void disableByQuestionGroupId(Long groupId);
 }

+ 5 - 4
gis_cms/src/main/java/com/gis/cms/service/impl/QuestionAnswerServiceImpl.java

@@ -31,10 +31,6 @@ public class QuestionAnswerServiceImpl extends IBaseServiceImpl<QuestionAnswerEn
     @Autowired
     private QuestionAnswerMapper entityMapper;
 
-
-    @Resource
-    public HttpServletRequest request;
-
     @Autowired
     FileService fileService;
 
@@ -79,6 +75,11 @@ public class QuestionAnswerServiceImpl extends IBaseServiceImpl<QuestionAnswerEn
         entityMapper.updateQuestionGroupId(questionGroupId, answerIds);
     }
 
+    @Override
+    public void disableByQuestionGroupId(Long groupId) {
+        entityMapper.disableByQuestionGroupId(groupId);
+    }
+
 
     @Override
     public Result saveEntity(QuestionAnswerDto param) {

+ 5 - 1
gis_cms/src/main/java/com/gis/cms/service/impl/QuestionGroupServiceImpl.java

@@ -187,10 +187,14 @@ public class QuestionGroupServiceImpl extends IBaseServiceImpl<QuestionGroupEnti
             this.update(entity);
         }
 
+        Long groupId = entity.getId();
+        // 将绑定的问题组id的问题答案设置为null
+//        questionAnswerService.removeByQuestionGroupId(entity.getId());
+        questionAnswerService.disableByQuestionGroupId(groupId);
         // 绑定答案
         String answerIds = param.getAnswerIds();
         if (StringUtils.isNotBlank(answerIds)) {
-            questionAnswerService.updateQuestionGroupId(id, answerIds);
+            questionAnswerService.updateQuestionGroupId(groupId, answerIds);
         }