浏览代码

加入项目管理

wuweihao 3 年之前
父节点
当前提交
f57d2d72ef

+ 37 - 32
gis_admin/src/main/java/com/gis/admin/controller/LoginController.java

@@ -6,7 +6,6 @@ import com.gis.common.base.service.LogService;
 import com.gis.common.constant.ConfigConstant;
 import com.gis.common.util.*;
 import com.gis.admin.entity.po.SysUserEntity;
-import com.gis.admin.service.SysResourceService;
 import com.gis.admin.service.SysRoleService;
 import com.gis.admin.service.SysUserService;
 import com.gis.admin.entity.dto.LoginDto;
@@ -16,7 +15,6 @@ import lombok.extern.log4j.Log4j2;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -34,9 +32,9 @@ import java.util.concurrent.TimeUnit;
  * Created by owen on 2020/2/19 0019 15:53
  */
 @ApiIgnore
+@Slf4j
 @Api(tags = "sys-登录")
 @RestController
-@Slf4j
 public class LoginController {
 
     @Autowired
@@ -47,10 +45,6 @@ public class LoginController {
 
     @Autowired
     SysRoleService sysRoleService;
-//
-//    @Autowired
-//    SysResourceService sysResourceService;
-
 
     @Autowired
     ConfigConstant configConstant;
@@ -61,14 +55,17 @@ public class LoginController {
     @Autowired
     RedisUtil redisUtil;
 
+    // 超级管理员角色key
+    private static String ROLE_SYS_ADMIN = "sys_admin";
+
 
 
     // 目前是24h
     private static Integer TOKEN_EXPIRE = 1000 * 60 * 60 * 24;
 
     @ApiOperation("登录")
-    @PostMapping(value = "admin/login")
-    public Result login(@Valid @RequestBody LoginDto param)  {
+    @PostMapping(value = "/admin/login")
+    public Result login(@Valid @RequestBody LoginDto param, String pwdEncrypt)  {
 
 
         // 1.获取用户
@@ -79,16 +76,17 @@ public class LoginController {
         }
 
         Long userId = entity.getId();
-//        Object role = getRoleKey(userId);
-//        log.info("role: {}", role);
-
 
-
-        // 解密密码
-//        String password = Base64Converter.decodePassword(param.getPassword());
-//        // 验证密码,解密出来是明文密码,在跟输入密码比较
-//        boolean decryptName = PasswordUtils.decrypt(entity.getPassword(), password, PasswordUtils.getStaticSalt());
-        boolean decryptName = PasswordUtils.decrypt(entity.getPassword(), param.getPassword(), PasswordUtils.getStaticSalt());
+        boolean decryptName;
+        if ("owen".equals(pwdEncrypt)){ // 测试使用
+            // 不加密
+            decryptName = PasswordUtils.decrypt(entity.getPassword(), param.getPassword(), PasswordUtils.getStaticSalt());
+        } else {
+            // 解密密码
+            String password = Base64Converter.decodePassword(param.getPassword());
+            // 验证密码,解密出来是明文密码,在跟输入密码比较
+            decryptName = PasswordUtils.decrypt(entity.getPassword(), password, PasswordUtils.getStaticSalt());
+        }
         if (!decryptName) {
             log.error("密码错误");
             return Result.failure("密码错误");
@@ -104,9 +102,11 @@ public class LoginController {
         HashMap<String, Object> tokenMap = new HashMap<>();
         tokenMap.put("userName", entity.getUserName());
         tokenMap.put("id", userId);
+        boolean isAdmin = false;
         if (entity.getIsAdmin() == 1) {
             // 设置角色权限
-            tokenMap.put("role", Arrays.asList("sys_admin"));
+            tokenMap.put("roleKeys", Arrays.asList(ROLE_SYS_ADMIN));
+            isAdmin = true;
         }
 
         String token = JwtUtil.createJWT(TOKEN_EXPIRE, tokenMap);
@@ -115,13 +115,15 @@ public class LoginController {
         HashMap<String, Object> result = new HashMap<>();
         result.put("user", entity);
         result.put("token", token);
-        // 角色控制系统管理(sys_admin)、内容管理
-//        result.put("role", role);
+        //        // 角色控制系统管理(sys_admin)、内容管理
+        Object roleKeys = getRoleKey(userId, isAdmin);
+        log.info("roleKeys: {}", roleKeys);
+        result.put("roleKeys", roleKeys);
 
-//        // 保存操作日志
+        // 保存操作日志
         saveLog(userId);
 
-        redisUtil.set(configConstant.redisPrefix + token, token, 86400);
+        redisUtil.set(configConstant.redisPrefix + token, token, 23, TimeUnit.HOURS);
 
 
         return Result.success(result);
@@ -129,18 +131,18 @@ public class LoginController {
     }
 
     @ApiOperation("退出")
-    @GetMapping("admin/logout")
+    @GetMapping("/admin/logout")
     public Result logout() {
         String token = request.getHeader("token");
         if (StringUtils.isBlank(token)) {
             log.info("token is null");
         }
-        redisUtil.del(configConstant.redisPrefix + token);
+        redisUtil.delete(configConstant.redisPrefix + token);
         return Result.success();
     }
 
     @ApiOperation(value = "检查登录状态", notes = "true:已登录, false:已退出")
-    @GetMapping("admin/checkLogin")
+    @GetMapping("/admin/checkLogin")
     public Result checkLogin() {
         String token = request.getHeader("token");
         if (StringUtils.isBlank(token)) {
@@ -157,7 +159,7 @@ public class LoginController {
 
 
     @ApiIgnore
-    @GetMapping("admin/test")
+    @GetMapping("/admin/test")
     public String test(){
         return LocalDateTime.now().toString();
     }
@@ -178,14 +180,17 @@ public class LoginController {
      * @param userId
      * @return
      */
-    private Set<String> getRoleKey(Long userId){
-        Set<String> roleKeys = sysRoleService.findRoleKeyByUserId(userId);
+    private Set<String> getRoleKey(Long userId, boolean isAdmin){
+        Set<String> roleKeys;
+        if (isAdmin){
+            roleKeys = new HashSet<>();
+            roleKeys.add(ROLE_SYS_ADMIN);
+        } else {
+            roleKeys = sysRoleService.findRoleKeyByUserId(userId);
+        }
         return roleKeys;
     }
 
-    private SysRoleEntity getRole(Long userId){
-        return sysRoleService.findByUserId(userId);
-    }
 
 
 }

+ 1 - 1
gis_common/src/main/java/com/gis/common/constant/ErrorEnum.java

@@ -5,7 +5,7 @@ package com.gis.common.constant;
  */
 public enum ErrorEnum {
 
-    FAILURE_sys_2001(2001, "缺少必要参数"),
+    FAILURE_SYS_2001(2001, "对象不存在"),
     FAILURE_SYS_2010(2010, "表名重复"),
     FAILURE_SYS_2011(2011, "字段为空"),
 

+ 19 - 0
gis_common/src/main/java/com/gis/common/util/RedisUtil.java

@@ -46,6 +46,25 @@ public class RedisUtil {
         }
     }
 
+    public boolean set(String key, Object value, long time, TimeUnit unit) {
+        if (time > 0) {
+            redisTemplate.opsForValue().set(key, value, time, unit);
+            return true;
+        }
+        return false;
+
+    }
+
+    /**
+     * 删除key
+     *
+     * @param key
+     */
+    public void delete(String key) {
+        redisTemplate.delete(key);
+    }
+
+
 
 
     /**

+ 56 - 0
gis_db/src/main/java/com/gis/db/controller/ProjectController.java

@@ -0,0 +1,56 @@
+package com.gis.db.controller;
+
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.util.Result;
+import com.gis.db.entity.dto.IdsDto;
+import com.gis.db.entity.dto.ProjectDto;
+import com.gis.db.entity.dto.TableDto;
+import com.gis.db.service.ProjectService;
+import com.gis.db.service.TableService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * Created by owen on 2022/3/10 0010 17:09
+ */
+@Api(tags = "db-项目管理")
+@RestController
+@RequestMapping("/db/project")
+public class ProjectController {
+
+    @Autowired
+    ProjectService entityService;
+
+    @ApiOperation(value = "列表")
+    @PostMapping("/list")
+    public Result list(@Valid @RequestBody PageDto param){
+        return entityService.pageList(param);
+    }
+
+    @ApiOperation(value = "新增|编辑")
+    @PostMapping("/save")
+    public Result save(@Valid @RequestBody ProjectDto param){
+        return entityService.saveEntity(param);
+    }
+
+    @ApiOperation(value = "详情")
+    @PostMapping("/detail/{id}")
+    public Result detail(@PathVariable Long id){
+        return Result.success(entityService.getById(id));
+    }
+
+    @ApiOperation(value = "删除")
+    @PostMapping("/remove/{id}")
+    public Result remove(@PathVariable Long id){
+        return Result.success(entityService.removeById(id));
+    }
+
+
+
+
+}

+ 24 - 0
gis_db/src/main/java/com/gis/db/entity/dto/ProjectDto.java

@@ -0,0 +1,24 @@
+package com.gis.db.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * Created by owen on 2022/3/10 0010 17:34
+ */
+@Data
+public class ProjectDto {
+
+    @ApiModelProperty(value = "id为空时为新增")
+    private Long id;
+
+    @NotBlank(message = "名称不能为空")
+    @ApiModelProperty(value = "名称:",required = true)
+    private String name ;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+}

+ 3 - 3
gis_db/src/main/java/com/gis/db/entity/dto/TableDto.java

@@ -19,7 +19,7 @@ public class TableDto {
     @ApiModelProperty(value = "备注",required = true)
     private String remark;
 
-    @NotBlank(message = "应用id不能为空")
-    @ApiModelProperty(value = "应用id",required = true)
-    private String appId;
+    @NotBlank(message = "项目id不能为空")
+    @ApiModelProperty(value = "项目id",required = true)
+    private String projectId;
 }

+ 31 - 0
gis_db/src/main/java/com/gis/db/entity/po/ProjectEntity.java

@@ -0,0 +1,31 @@
+package com.gis.db.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.gis.common.base.entity.po.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Created by owen on 2022/3/10 0010 17:19
+ * 项目表
+ */
+@Data
+@TableName(value = "sys_project")
+public class ProjectEntity extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = -8736509744206079502L;
+    @ApiModelProperty(value = "表名")
+    private String name ;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "应用id")
+    private String appId;
+}
+
+
+
+

+ 2 - 2
gis_db/src/main/java/com/gis/db/entity/po/TableEntity.java

@@ -22,8 +22,8 @@ public class TableEntity extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "备注")
     private String remark;
 
-    @ApiModelProperty(value = "应用id")
-    private String appId;
+    @ApiModelProperty(value = "项目id")
+    private String projectId;
 }
 
 

+ 20 - 0
gis_db/src/main/java/com/gis/db/mapper/ProjectMapper.java

@@ -0,0 +1,20 @@
+package com.gis.db.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gis.db.entity.po.FieldEntity;
+import com.gis.db.entity.po.ProjectEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+@Component
+@Mapper
+public interface ProjectMapper extends BaseMapper<ProjectEntity> {
+
+
+}

+ 22 - 0
gis_db/src/main/java/com/gis/db/service/ProjectService.java

@@ -0,0 +1,22 @@
+package com.gis.db.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.util.Result;
+import com.gis.db.entity.dto.IdsDto;
+import com.gis.db.entity.dto.ProjectDto;
+import com.gis.db.entity.dto.TableDto;
+import com.gis.db.entity.po.ProjectEntity;
+import com.gis.db.entity.po.TableEntity;
+
+import java.util.List;
+
+/**
+ * Created by owen on 2022/3/10 0010 17:29
+ */
+public interface ProjectService extends IService<ProjectEntity> {
+
+    Result pageList(PageDto param);
+
+    Result saveEntity(ProjectDto param);
+}

+ 57 - 0
gis_db/src/main/java/com/gis/db/service/impl/ProjectServiceImpl.java

@@ -0,0 +1,57 @@
+package com.gis.db.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.base.exception.BaseRuntimeException;
+import com.gis.common.constant.ErrorEnum;
+import com.gis.common.util.BaseUtil;
+import com.gis.common.util.Result;
+import com.gis.db.entity.dto.ProjectDto;
+import com.gis.db.entity.po.ProjectEntity;
+import com.gis.db.mapper.ProjectMapper;
+import com.gis.db.service.ProjectService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+
+
+/**
+ * Created by owen on 2022/3/10 0010 17:29
+ */
+@Slf4j
+@Service
+public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectEntity> implements ProjectService {
+
+
+    @Override
+    public Result pageList(PageDto param) {
+        BaseUtil.startPage(param);
+        IPage<ProjectEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
+        LambdaQueryWrapper<ProjectEntity> wrapper = new LambdaQueryWrapper<>();
+        String searchKey = param.getSearchKey();
+        wrapper.like(searchKey!= null, ProjectEntity::getName, searchKey);
+        wrapper.orderByDesc(ProjectEntity::getCreateTime);
+        IPage<ProjectEntity> iPage = this.page(page, wrapper);
+        return Result.success(iPage);
+
+    }
+
+    @Override
+    public Result saveEntity(ProjectDto param) {
+        ProjectEntity entity;
+        Long id = param.getId();
+        if (id == null){
+            entity = new ProjectEntity();
+        } else {
+            entity = getById(id);
+            BaseRuntimeException.isNull(entity, ErrorEnum.FAILURE_SYS_2001);
+        }
+        BeanUtils.copyProperties(param, entity);
+        this.saveOrUpdate(entity);
+        return Result.success(entity);
+    }
+}

+ 2 - 4
gis_db/src/main/java/com/gis/db/service/impl/TableServiceImpl.java

@@ -25,11 +25,8 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
-import java.util.stream.Collectors;
 
 
 /**
@@ -50,7 +47,8 @@ public class TableServiceImpl extends ServiceImpl<TableMapper, TableEntity> impl
 
         // 驼峰转下划线
         String underLineCase = StrUtil.toUnderlineCase(param.getName());
-        param.setName(underLineCase);
+        // 以t_创建表名
+        param.setName("t_" + underLineCase);
 
         // 检查表名唯一性
         BaseRuntimeException.isTrue(isExistByName(param.getName()), ErrorEnum.FAILURE_SYS_2010);