wuweihao před 3 roky
rodič
revize
6b12e2f89e
25 změnil soubory, kde provedl 206 přidání a 1385 odebrání
  1. 1 1
      README.md
  2. 8 23
      gis_admin/src/main/java/com/gis/admin/controller/LoginController.java
  3. 4 4
      gis_admin/src/main/java/com/gis/admin/controller/SysUserController.java
  4. 1 1
      gis_admin/src/main/java/com/gis/admin/mapper/SysUserMapper.java
  5. 4 1
      gis_admin/src/main/java/com/gis/admin/service/SysUserService.java
  6. 19 13
      gis_admin/src/main/java/com/gis/admin/service/impl/SysUserServiceImpl.java
  7. 2 2
      gis_admin/src/main/java/com/gis/admin/shiro/ShiroRealm.java
  8. 0 2
      gis_cms/src/main/java/com/gis/cms/service/impl/ApiDbServiceImpl.java
  9. 1 1
      gis_common/src/main/java/com/gis/common/base/service/impl/SysIpServiceImpl.java
  10. 0 1187
      gis_common/src/main/java/com/gis/common/util/RedisUtil.java
  11. 1 11
      gis_db/src/main/java/com/gis/db/controller/FieldController.java
  12. 1 1
      gis_db/src/main/java/com/gis/db/controller/ProjectController.java
  13. 7 1
      gis_db/src/main/java/com/gis/db/controller/RecordController.java
  14. 11 1
      gis_db/src/main/java/com/gis/db/mapper/FieldMapper.java
  15. 4 0
      gis_db/src/main/java/com/gis/db/mapper/TableMapper.java
  16. 0 15
      gis_db/src/main/java/com/gis/db/service/DdlService.java
  17. 17 2
      gis_db/src/main/java/com/gis/db/service/FieldService.java
  18. 0 17
      gis_db/src/main/java/com/gis/db/service/RecordService.java
  19. 6 0
      gis_db/src/main/java/com/gis/db/service/TableService.java
  20. 0 37
      gis_db/src/main/java/com/gis/db/service/impl/DdlServiceImpl.java
  21. 71 11
      gis_db/src/main/java/com/gis/db/service/impl/FieldServiceImpl.java
  22. 19 5
      gis_db/src/main/java/com/gis/db/service/impl/ProjectServiceImpl.java
  23. 0 43
      gis_db/src/main/java/com/gis/db/service/impl/RecordServiceImpl.java
  24. 20 1
      gis_db/src/main/java/com/gis/db/service/impl/TableServiceImpl.java
  25. 9 5
      gis_db/src/main/resources/mybatis-mapper/FieldMapper.xml

+ 1 - 1
README.md

@@ -25,7 +25,7 @@ gis_biguiyuan  AR-碧桂园项目-文通部门
 
 
 # 开发进度日志
-  参考:https://www.bmob.cn  微信扫码登录
+  参考:https://www.bmob.cn  微信扫码登录 - 云数据库
   DDL参考:https://juejin.cn/post/7056774622414372901
  2022-3-21 删除表      已完成
  2022-3-21 删除字段    未完成

+ 8 - 23
gis_admin/src/main/java/com/gis/admin/controller/LoginController.java

@@ -1,6 +1,7 @@
 package com.gis.admin.controller;
 
 import com.gis.common.base.entity.po.LogEntity;
+import com.gis.common.base.exception.BaseRuntimeException;
 import com.gis.common.base.service.LogService;
 import com.gis.common.constant.ConfigConstant;
 import com.gis.common.util.*;
@@ -64,17 +65,13 @@ public class LoginController {
     @ApiOperation("登录")
     @PostMapping(value = "/admin/login")
     public Result login(@Valid @RequestBody LoginDto param, String pwdEncrypt)  {
-
-
         // 1.获取用户
         SysUserEntity entity = userService.findByUserName(param.getUserName());
-        if (entity == null){
-            log.error("用户不存在");
-            return Result.failure("用户不存在");
-        }
+        BaseRuntimeException.isNull(entity, null, "用户不存在");
 
         Long userId = entity.getId();
 
+        //校验密码
         boolean decryptName;
         if ("owen".equals(pwdEncrypt)){ // 测试使用
             // 不加密
@@ -85,16 +82,10 @@ public class LoginController {
             // 验证密码,解密出来是明文密码,在跟输入密码比较
             decryptName = PasswordUtils.decrypt(entity.getPassword(), password, PasswordUtils.getStaticSalt());
         }
-        if (!decryptName) {
-            log.error("密码错误");
-            return Result.failure("密码错误");
-        }
-
+        BaseRuntimeException.isTrue(!decryptName, null, "密码错误");
         // 检查账号是否启用
-        if (entity.getIsEnabled() != 1) {
-            log.error("此账号已停用: {}", entity.getUserName());
-            return Result.failure("此账号已停用");
-        }
+        BaseRuntimeException.isTrue(entity.getIsEnabled() != 1, null, "此账号已停用:" + entity.getUserName());
+
 
         // 创建新token
         HashMap<String, Object> tokenMap = new HashMap<>();
@@ -110,11 +101,10 @@ public class LoginController {
         tokenMap.put("isAdmin", isAdmin);
         String token = JwtUtil.createJWT(TOKEN_EXPIRE, tokenMap);
 
-
         HashMap<String, Object> result = new HashMap<>();
         result.put("user", entity);
         result.put("token", token);
-        //        // 角色控制系统管理(sys_admin)、内容管理
+        // 角色控制系统管理(sys_admin)、内容管理
         Object roleKeys = getRoleKey(userId, isAdmin);
         log.info("roleKeys: {}", roleKeys);
         result.put("roleKeys", roleKeys);
@@ -124,7 +114,6 @@ public class LoginController {
 
         redisUtil.setEx(configConstant.redisPrefix + token, token, 23, TimeUnit.HOURS);
 
-
         return Result.success(result);
 
     }
@@ -152,11 +141,7 @@ public class LoginController {
     }
 
 
-
-
-
-
-
+    
     @ApiIgnore
     @GetMapping("/admin/test")
     public String test(){

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

@@ -93,10 +93,10 @@ public class SysUserController {
 
     @RequiresRoles(value = {"sys_admin"}, logical = Logical.OR)
     @WebControllerLog(description = "用户管理-授权项目",addDb = true)
-    @ApiOperation("授权项目")
-    @GetMapping("/auth/{projectIds}")
-    public Result authProject(@PathVariable String projectIds) {
-        return userService.authProject(projectIds);
+    @ApiOperation(value = "授权项目")
+    @GetMapping("/auth/{projectIds}/{userId}")
+    public Result authProject(@PathVariable String projectIds, @PathVariable String userId) {
+        return userService.authProject(projectIds, userId);
     }
 
 

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

@@ -38,5 +38,5 @@ public interface SysUserMapper extends BaseMapper<SysUserEntity> {
     List<SysUserEntity> search(UserPageDateDto param);
 
     @Update("update sys_user set project_ids = #{projectIds} , update_time = NOW() where is_delete=0 and id = #{userId} ")
-    void setProjectId(String projectIds, Long userId);
+    void setProjectId(String projectIds, String userId);
 }

+ 4 - 1
gis_admin/src/main/java/com/gis/admin/service/SysUserService.java

@@ -41,5 +41,8 @@ public interface SysUserService extends IService<SysUserEntity> {
 
     SysUserEntity cacheByUserName(String userName);
 
-    Result authProject(String projectIds);
+    /**项目授权*/
+    Result authProject(String projectIds, String userId);
+
+    SysUserEntity cacheById(Long userId);
 }

+ 19 - 13
gis_admin/src/main/java/com/gis/admin/service/impl/SysUserServiceImpl.java

@@ -4,13 +4,9 @@ import cn.hutool.core.util.RandomUtil;
 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.IService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.admin.entity.dto.ResetPasswordDto;
-import com.gis.admin.entity.po.SysRoleEntity;
 import com.gis.common.base.entity.dto.PageDateDto;
-import com.gis.common.base.entity.dto.UserPageDateDto;
-import com.gis.common.base.entity.po.LogEntity;
 import com.gis.common.base.exception.BaseRuntimeException;
 //import com.gis.common.base.service.LogService;
 //import com.gis.common.base.service.impl.MyBaseServiceImpl;
@@ -21,7 +17,6 @@ import com.gis.admin.entity.dto.UserDto;
 import com.gis.admin.entity.dto.RegisterDto;
 import com.gis.admin.entity.po.SysUserEntity;
 import com.gis.admin.mapper.SysUserMapper;
-import com.gis.admin.service.SysRoleService;
 import com.gis.admin.service.SysUserService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -33,7 +28,6 @@ import javax.servlet.http.HttpServletRequest;
 import java.time.LocalDateTime;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Set;
 import java.util.concurrent.TimeUnit;
 
 
@@ -57,7 +51,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
     IBaseService baseService;
 
     /**redis 用户名*/
-    final static String USER_NAME_KEY = "user:";
+    final static String USER_KEY = "user:";
 
 
     /**重置密码redis key*/
@@ -73,7 +67,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
     @Override
     public SysUserEntity cacheByUserName(String userName) {
         SysUserEntity entity;
-        String userKey = USER_NAME_KEY + userName;
+        String userKey = USER_KEY + userName;
         if (redisUtil.hasKey(userKey)){
             entity =  redisUtil.getCacheObject(userKey);
         } else {
@@ -84,15 +78,29 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
     }
 
     @Override
-    public Result authProject(String projectIds) {
-        Long userId = baseService.getUserId();
+    public SysUserEntity cacheById(Long userId) {
+        SysUserEntity entity;
+        String userKey = USER_KEY + userId;
+        if (redisUtil.hasKey(userKey)){
+            entity =  redisUtil.getCacheObject(userKey);
+        } else {
+            entity = this.getById(userId);
+            redisUtil.setCacheObject(userKey, entity, 5, TimeUnit.MINUTES);
+        }
+        return entity;
+    }
+
+    @Override
+    public Result authProject(String projectIds, String userId) {
         baseMapper.setProjectId(projectIds, userId);
-        String userKey = USER_NAME_KEY + userId;
+        String userKey = USER_KEY + userId;
         redisUtil.delete(userKey);
         return Result.success();
     }
 
 
+
+
     @Override
     public Result saveEntity(UserDto param) {
         SysUserEntity entity ;
@@ -176,7 +184,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
         param.setOldPassword(oldPassword);
         SysUserEntity user = this.findByUserName(JwtUtil.getUserName(request.getHeader("token")));
         updatePwd(param, user, true);
-//        updatePassword(param);
         return Result.success();
     }
 
@@ -193,7 +200,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
 
         user.setPassword(PasswordUtils.encrypt(user.getUserName(), param.getNewPassword(), PasswordUtils.getStaticSalt()));
         user.setUpdateTime(LocalDateTime.now());
-//        this.saveOrUpdate(user);
         this.updateById(user);
     }
 

+ 2 - 2
gis_admin/src/main/java/com/gis/admin/shiro/ShiroRealm.java

@@ -72,7 +72,6 @@ public class ShiroRealm extends AuthorizingRealm {
     @Override
     protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
 //        log.info("===============Shiro权限认证开始============ [ roles、permissions]==========");
-        Long userId = null;
 
         SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
 
@@ -142,7 +141,8 @@ public class ShiroRealm extends AuthorizingRealm {
             throw new JwtAuthenticationException(5001, "token invalid");
         }
 
-        SysUserEntity userEntity = sysUserService.findByUserName(username);
+//        SysUserEntity userEntity = sysUserService.cacheByUserName(username);
+        SysUserEntity userEntity = sysUserService.cacheById(JwtUtil.getUserId(token));
         if (userEntity == null) {
             log.error("error token userEntity");
             throw new JwtAuthenticationException(5001, "User didn't existed!");

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

@@ -3,11 +3,9 @@ package com.gis.cms.service.impl;
 import com.gis.cms.service.ApiDbService;
 import com.gis.common.base.entity.dto.PageDto;
 import com.gis.common.base.service.IBaseService;
-import com.gis.common.util.EncryptUtils;
 import com.gis.common.util.Result;
 import com.gis.db.entity.dto.TablePageDto;
 import com.gis.db.service.FieldService;
-import com.gis.db.service.RecordService;
 import com.gis.db.service.TableService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;

+ 1 - 1
gis_common/src/main/java/com/gis/common/base/service/impl/SysIpServiceImpl.java

@@ -67,7 +67,7 @@ public class SysIpServiceImpl extends ServiceImpl<SysIpMapper, SysIpEntity> impl
         wrapper.eq(SysIpEntity::getProjectId, projectId);
 
         String searchKey = param.getSearchKey();
-        wrapper.eq(StrUtil.isNotBlank(searchKey), SysIpEntity::getIp, searchKey);
+        wrapper.like(StrUtil.isNotBlank(searchKey), SysIpEntity::getIp, searchKey);
 
         wrapper.orderByDesc(SysIpEntity::getCreateTime);
         IPage<SysIpEntity> iPage = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 1187
gis_common/src/main/java/com/gis/common/util/RedisUtil.java


+ 1 - 11
gis_db/src/main/java/com/gis/db/controller/FieldController.java

@@ -4,7 +4,6 @@ import com.gis.common.util.Result;
 import com.gis.db.entity.dto.FieldDto;
 import com.gis.db.entity.dto.FieldPageDto;
 import com.gis.db.entity.dto.IdsDto;
-import com.gis.db.service.DdlService;
 import com.gis.db.service.FieldService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -26,9 +25,6 @@ public class FieldController {
     @Autowired
     FieldService entityService;
 
-    @Autowired
-    DdlService ddlService;
-
     @Transactional(rollbackFor = Exception.class)
     @ApiOperation(value = "添加表字段")
     @PostMapping("add")
@@ -50,13 +46,7 @@ public class FieldController {
         return entityService.getList(param);
     }
 
-//    @Transactional(rollbackFor = Exception.class)
-//    @ApiOperation(value = "测试addField")
-//    @PostMapping("addField")
-//    public Result addFieldTest(@RequestBody List<FieldEntity> param){
-//         ddlService.addField(param, "ts_aa");
-//         return Result.success();
-//    }
+
 
 
 

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

@@ -45,7 +45,7 @@ public class ProjectController {
     }
 
     @ApiOperation(value = "删除")
-    @GetMapping("/remove/{id}")
+    @PostMapping("/remove/{id}")
     public Result remove(@PathVariable Long id){
         return Result.success(entityService.removeById(id));
     }

+ 7 - 1
gis_db/src/main/java/com/gis/db/controller/RecordController.java

@@ -8,6 +8,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.validation.Valid;
 
@@ -29,7 +30,6 @@ public class RecordController {
         return fieldService.getFieldData(tableId, param);
     }
 
-
     @ApiOperation(value = "查询-详情", notes = "tableId:表id; id:记录id")
     @GetMapping("detail/{tableId}/{id}")
     public Result detail(@PathVariable Long tableId, @PathVariable Long id){
@@ -54,5 +54,11 @@ public class RecordController {
         return fieldService.delRecord(tableId, ids);
     }
 
+//    @ApiOperation(value = "上传文件", notes = "tableName:表名")
+//    @PostMapping("upload/{tableName}")
+//    public Result upload(MultipartFile file, @PathVariable String tableName) {
+//        return fieldService.upload(file, tableName);
+//    }
+
 
 }

+ 11 - 1
gis_db/src/main/java/com/gis/db/mapper/FieldMapper.java

@@ -18,7 +18,17 @@ import java.util.Map;
 @Mapper
 public interface FieldMapper extends BaseMapper<FieldEntity> {
 
-    IPage<Map> page(@Param("tableName") String tableName, @Param("fieldNames") List<String> fieldNames, IPage<Map> page);
+    /**
+     * 具备搜索功能
+     * @param tableName 表面
+     * @param fieldNames 字段名称
+     * @param searchField 搜索字段
+     * @param searchKey 搜索key
+     * @param page
+     * @return
+     */
+//    IPage<Map> page(@Param("tableName") String tableName, @Param("fieldNames") List<String> fieldNames, @Param("searchField") List<String> searchField, @Param("searchKey") String searchKey,IPage<Map> page);
+    IPage<Map> page(@Param("tableName") String tableName, @Param("searchField") List<String> searchField, @Param("searchKey") String searchKey,IPage<Map> page);
 
     Map detail(@Param("tableName") String tableName, @Param("fieldNames") List<String> fileNames, @Param("id") Long id);
 

+ 4 - 0
gis_db/src/main/java/com/gis/db/mapper/TableMapper.java

@@ -4,10 +4,14 @@ package com.gis.db.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.gis.db.entity.po.TableEntity;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Component;
 
 @Component
 @Mapper
 public interface TableMapper extends BaseMapper<TableEntity> {
 
+    @Select("SELECT b.name, b.id from sys_field a left join sys_table b on b.id=a.table_id where a.is_delete=0 and a.id=#{id}")
+    TableEntity getTableByFieldId(Integer id);
+
 }

+ 0 - 15
gis_db/src/main/java/com/gis/db/service/DdlService.java

@@ -1,15 +0,0 @@
-package com.gis.db.service;
-
-import com.gis.db.entity.po.FieldEntity;
-
-import java.util.List;
-
-/**
- * Created by owen on 2022/3/10 0010 17:29
- */
-public interface DdlService  {
-
-    void addField(List<FieldEntity> param, String tableName);
-
-
-}

+ 17 - 2
gis_db/src/main/java/com/gis/db/service/FieldService.java

@@ -6,6 +6,7 @@ import com.gis.common.util.Result;
 import com.gis.db.entity.dto.*;
 import com.gis.db.entity.po.FieldEntity;
 import com.gis.db.entity.po.TableEntity;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 
@@ -14,23 +15,37 @@ import java.util.List;
  */
 public interface FieldService extends IService<FieldEntity> {
 
+    /**字段-添加*/
     Result addField(List<FieldDto> param);
 
     Result testSql();
 
+    /**字段/数据-列表*/
     Result getFieldData(Long tableId, PageDto param);
 
-    Result detail(Long tableId, Long id);
+    /**字段-删除*/
+    Result delField(IdsDto param);
 
+    /**字段-批量删除*/
     void removeBatchByTableId(List<Integer>tableIds);
 
-    Result delField(IdsDto param);
 
+
+    /**数据-详情*/
+    Result detail(Long tableId, Long id);
+
+    /**数据-列表*/
     Result getList(FieldPageDto param);
 
+    /**数据-新增*/
     Result insertRecord(RecordDto param);
 
+    /**数据-删除*/
     Result delRecord(String tableId, String ids);
 
+    /**数据-更新*/
     Result updateRecord(RecordDto param);
+
+    /**数据-上传文件*/
+    Result upload(MultipartFile file, String tableName);
 }

+ 0 - 17
gis_db/src/main/java/com/gis/db/service/RecordService.java

@@ -1,17 +0,0 @@
-package com.gis.db.service;
-
-import com.gis.common.base.entity.dto.PageDto;
-import com.gis.common.util.Result;
-import com.gis.db.entity.po.FieldEntity;
-
-import java.util.List;
-
-/**
- * Created by owen on 2022/3/10 0010 17:29
- */
-public interface RecordService {
-
-
-
-
-}

+ 6 - 0
gis_db/src/main/java/com/gis/db/service/TableService.java

@@ -6,6 +6,7 @@ import com.gis.common.util.Result;
 import com.gis.db.entity.dto.IdsDto;
 import com.gis.db.entity.dto.TableDto;
 import com.gis.db.entity.dto.TablePageDto;
+import com.gis.db.entity.po.FieldEntity;
 import com.gis.db.entity.po.TableEntity;
 
 import java.util.List;
@@ -24,4 +25,9 @@ public interface TableService extends IService<TableEntity> {
     List<String> getTableNameByTableId(List<Integer> tableIds);
 
     String getTableName(String tableId);
+
+    TableEntity getTableByFieldId(Integer integer);
+
+    /**表-添加字段*/
+    void addField(List<FieldEntity> param, String tableName);
 }

+ 0 - 37
gis_db/src/main/java/com/gis/db/service/impl/DdlServiceImpl.java

@@ -1,37 +0,0 @@
-package com.gis.db.service.impl;
-
-import cn.hutool.core.util.StrUtil;
-import com.gis.db.entity.po.FieldEntity;
-import com.gis.db.mapper.DdlMapper;
-import com.gis.db.service.DdlService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * Created by owen on 2022/3/10 0010 17:29
- */
-@Slf4j
-@Service
-public class DdlServiceImpl  implements DdlService {
-
-    @Autowired
-    DdlMapper ddlMapper;
-
-
-    @Override
-    public void addField(List<FieldEntity> param, String tableName) {
-        for (FieldEntity entity : param) {
-            String sql = StrUtil.format("alter table {} add {} {}({}) COMMENT '{}' ; ",
-                    tableName, entity.getName(), entity.getType(), entity.getLength(), entity.getRemark());
-            log.info("sqlStr: {}", sql);
-            ddlMapper.updateSql(sql);
-        }
-
-
-    }
-
-
-}

+ 71 - 11
gis_db/src/main/java/com/gis/db/service/impl/FieldServiceImpl.java

@@ -10,6 +10,7 @@ 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.RedisUtil;
 import com.gis.common.util.Result;
 import com.gis.db.entity.dto.FieldDto;
 import com.gis.db.entity.dto.FieldPageDto;
@@ -20,15 +21,16 @@ import com.gis.db.entity.po.TableEntity;
 import com.gis.db.entity.vo.FieldVo;
 import com.gis.db.mapper.DdlMapper;
 import com.gis.db.mapper.FieldMapper;
-import com.gis.db.service.DdlService;
 import com.gis.db.service.FieldService;
 import com.gis.db.service.TableService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 
 /**
  * Created by owen on 2022/3/10 0010 17:29
@@ -37,8 +39,7 @@ import java.util.*;
 @Service
 public class FieldServiceImpl extends ServiceImpl<FieldMapper, FieldEntity> implements FieldService {
 
-    @Autowired
-    DdlService ddlService;
+
 
     @Autowired
     TableService tableService;
@@ -46,6 +47,17 @@ public class FieldServiceImpl extends ServiceImpl<FieldMapper, FieldEntity> impl
     @Autowired
     DdlMapper ddlMapper;
 
+    @Autowired
+    RedisUtil redisUtil;
+
+
+
+    static final String TABLE_KEY = "table:";
+
+    static final String FIELD_TABLE_KEY = "fieldTable:";
+
+
+
     @Override
     public Result addField(List<FieldDto> param) {
 
@@ -70,7 +82,11 @@ public class FieldServiceImpl extends ServiceImpl<FieldMapper, FieldEntity> impl
         this.saveBatch(list);
 
         // 添加字段到表
-        ddlService.addField(list, tableEntity.getName());
+        tableService.addField(list, tableEntity.getName());
+
+        // 删除缓存
+        String fieldTableKey = FIELD_TABLE_KEY+tableId;
+        redisUtil.delete(fieldTableKey);
 
 
         return Result.success();
@@ -112,11 +128,15 @@ public class FieldServiceImpl extends ServiceImpl<FieldMapper, FieldEntity> impl
         // todo 校验appId
 
         // 删除表字段
-
         List<Integer> ids = param.getIds();
         List<String> fieldNames = getFieldName(ids);
 
-        String tableName = getTableNameByFieldId(ids.get(0));
+//        String tableName = getTableNameByFieldId(ids.get(0));
+
+        TableEntity tableEntity = tableService.getTableByFieldId(ids.get(0));
+        BaseRuntimeException.isNull(tableEntity, null, "该表不存在");
+        String tableName = tableEntity.getName();
+        Long tableId = tableEntity.getId();
 
         for (String name : fieldNames) {
             // 检查字段是否存在
@@ -132,6 +152,10 @@ public class FieldServiceImpl extends ServiceImpl<FieldMapper, FieldEntity> impl
         this.removeByIds(ids);
 
 
+        // 删除缓存
+        String fieldTableKey = FIELD_TABLE_KEY+tableId;
+        redisUtil.delete(fieldTableKey);
+
         return Result.success();
     }
 
@@ -139,6 +163,8 @@ public class FieldServiceImpl extends ServiceImpl<FieldMapper, FieldEntity> impl
         return getBaseMapper().getTableNameByFieldId(id);
     }
 
+
+
     @Override
     public Result getList(FieldPageDto param) {
         BaseUtil.startPage(param);
@@ -198,6 +224,12 @@ public class FieldServiceImpl extends ServiceImpl<FieldMapper, FieldEntity> impl
         return Result.success();
     }
 
+    @Override
+    public Result upload(MultipartFile file, String tableName) {
+
+        return null;
+    }
+
     private List<String> getFieldName(List<Integer> ids){
         List<FieldEntity> entityList = this.listByIds(ids);
         List<String> filedNames = new ArrayList<>();
@@ -222,17 +254,25 @@ public class FieldServiceImpl extends ServiceImpl<FieldMapper, FieldEntity> impl
         return count != 0;
     }
 
-    private List<FieldEntity> findByTableId(Long tableId){
+    private List<FieldEntity> cacheByTableId(Long tableId){
+        String tableKey = FIELD_TABLE_KEY + tableId;
+        if (redisUtil.hasKey(tableKey)){
+            return redisUtil.getCacheObject(tableKey);
+        }
+
         LambdaQueryWrapper<FieldEntity> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(FieldEntity::getTableId, tableId);
         List<FieldEntity> list = this.list(wrapper);
         BaseRuntimeException.isEmpty(list, ErrorEnum.FAILURE_SYS_2011);
+
+        redisUtil.setCacheObject(tableKey, list, 5, TimeUnit.MINUTES);
+
         return list;
     }
 
     // 获取字段名称
     private List<String> getFileNames(Long tableId){
-        List<FieldEntity> list = findByTableId(tableId);
+        List<FieldEntity> list = cacheByTableId(tableId);
         ArrayList<String> fileNames = new ArrayList<>();
         for (FieldEntity entity : list) {
             fileNames.add(entity.getName());
@@ -244,10 +284,26 @@ public class FieldServiceImpl extends ServiceImpl<FieldMapper, FieldEntity> impl
         return fileNames;
     }
 
+    /**
+     * 获取搜索字段
+     * @param tableId
+     * @return
+     */
+    private List<String> getSearchField(Long tableId){
+        List<FieldEntity> list = cacheByTableId(tableId);
+        ArrayList<String> fileNames = new ArrayList<>();
+        for (FieldEntity entity : list) {
+            if (entity.getIsQuery() == 1){
+                fileNames.add(entity.getName());
+            }
+        }
+        return fileNames;
+    }
+
 
 
     private Map getMapByTableId(Long tableId){
-        List<FieldEntity> list = findByTableId(tableId);
+        List<FieldEntity> list = cacheByTableId(tableId);
 
         Map filedMap = new HashMap();
         FieldVo vo ;
@@ -269,7 +325,7 @@ public class FieldServiceImpl extends ServiceImpl<FieldMapper, FieldEntity> impl
     }
 
     private List<Object>  gertFieldListByTableId(Long tableId){
-        List<FieldEntity> list = findByTableId(tableId);
+        List<FieldEntity> list = cacheByTableId(tableId);
 
         List<Object> fields = new ArrayList<>();
         FieldVo vo ;
@@ -292,7 +348,11 @@ public class FieldServiceImpl extends ServiceImpl<FieldMapper, FieldEntity> impl
         IPage<Map> page = new Page<>(param.getPageNum() , param.getPageSize());
         TableEntity tableEntity = tableService.getById(tableId);
         BaseRuntimeException.isNull(tableEntity, ErrorEnum.FAILURE_CODE_3001);
-        IPage<Map> resPage = getBaseMapper().page(tableEntity.getName(), getFileNames(tableId), page);
+
+        List<String> searchField = getSearchField(tableId);
+        List<String> fileNames = getFileNames(tableId);
+//        IPage<Map> resPage = getBaseMapper().page(tableEntity.getName(), fileNames, searchField, param.getSearchKey(), page);
+        IPage<Map> resPage = getBaseMapper().page(tableEntity.getName(), searchField, param.getSearchKey(), page);
 
         Map resultMap = new HashMap();
         resultMap.put("fieldNames", gertFieldListByTableId(tableId));

+ 19 - 5
gis_db/src/main/java/com/gis/db/service/impl/ProjectServiceImpl.java

@@ -1,6 +1,6 @@
 package com.gis.db.service.impl;
 
-import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -24,6 +24,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Arrays;
 
 
 /**
@@ -50,8 +51,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectEntity
         LambdaQueryWrapper<ProjectEntity> wrapper = new LambdaQueryWrapper<>();
         // 授权才能看到响应的项目
         if (baseService.getIsAdmin()==0){
-            SysUserEntity entity = userService.cacheByUserName(baseService.getUserName());
-            wrapper.in(ProjectEntity::getId, entity.getProjectIds());
+            SysUserEntity entity = userService.cacheById(baseService.getUserId());
+            // inSql以字符串形式传入
+            wrapper.inSql(ProjectEntity::getId, entity.getProjectIds());
         }
         String searchKey = param.getSearchKey();
         wrapper.like(StrUtil.isNotBlank(searchKey), ProjectEntity::getName, searchKey);
@@ -66,9 +68,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectEntity
         ProjectEntity entity;
         boolean flag = false;
         Long id = param.getId();
+        Long userId = baseService.getUserId();
         if (id == null){
             entity = new ProjectEntity();
-            entity.setCreatorId(baseService.getUserId());
+            entity.setCreatorId(userId);
             flag = true;
         } else {
             entity = getById(id);
@@ -79,7 +82,18 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectEntity
         this.saveOrUpdate(entity);
         // 创建appId
         if (flag){
-            createAppId(entity.getId());
+            Long projectId = entity.getId();
+            createAppId(projectId);
+            // 授权项目
+            SysUserEntity userEntity = userService.getById(userId);
+            String projectIds = userEntity.getProjectIds();
+            if (StrUtil.isNotBlank(projectIds)){
+                projectIds  = projectIds + "," + projectId;
+            } else {
+                projectIds = projectId.toString();
+            }
+            userService.authProject(projectIds, userId.toString());
+
         }
         return Result.success(entity);
     }

+ 0 - 43
gis_db/src/main/java/com/gis/db/service/impl/RecordServiceImpl.java

@@ -1,43 +0,0 @@
-package com.gis.db.service.impl;
-
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-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.po.FieldEntity;
-import com.gis.db.entity.po.TableEntity;
-import com.gis.db.mapper.DdlMapper;
-import com.gis.db.service.DdlService;
-import com.gis.db.service.FieldService;
-import com.gis.db.service.RecordService;
-import com.gis.db.service.TableService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Created by owen on 2022/3/10 0010 17:29
- */
-@Slf4j
-@Service
-public class RecordServiceImpl implements RecordService {
-
-    @Autowired
-    TableService tableService;
-
-    @Autowired
-    FieldService fieldService;
-
-
-
-
-
-}

+ 20 - 1
gis_db/src/main/java/com/gis/db/service/impl/TableServiceImpl.java

@@ -13,6 +13,7 @@ import com.gis.common.util.Result;
 import com.gis.db.entity.dto.IdsDto;
 import com.gis.db.entity.dto.TableDto;
 import com.gis.db.entity.dto.TablePageDto;
+import com.gis.db.entity.po.FieldEntity;
 import com.gis.db.entity.po.TableEntity;
 import com.gis.db.mapper.DdlMapper;
 import com.gis.db.mapper.TableMapper;
@@ -41,7 +42,20 @@ public class TableServiceImpl extends ServiceImpl<TableMapper, TableEntity> impl
     @Autowired
     FieldService fieldService;
 
-    @Cacheable
+
+    @Override
+    public void addField(List<FieldEntity> param, String tableName) {
+        for (FieldEntity entity : param) {
+            String sql = StrUtil.format("alter table {} add {} {}({}) COMMENT '{}' ; ",
+                    tableName, entity.getName(), entity.getType(), entity.getLength(), entity.getRemark());
+            log.info("sqlStr: {}", sql);
+            ddlMapper.updateSql(sql);
+        }
+
+
+    }
+
+
     @Override
     public Result createTable(TableDto param) {
 
@@ -123,6 +137,11 @@ public class TableServiceImpl extends ServiceImpl<TableMapper, TableEntity> impl
         return name;
     }
 
+    @Override
+    public TableEntity getTableByFieldId(Integer fieldId) {
+        return baseMapper.getTableByFieldId(fieldId);
+    }
+
     /**
      * 判断表面是否存在
      * @param name

+ 9 - 5
gis_db/src/main/resources/mybatis-mapper/FieldMapper.xml

@@ -4,11 +4,15 @@
 
 
     <select id="page" resultType="java.util.Map">
-        select
-        <foreach collection="fieldNames" index="index" item="name" separator=",">
-            ${name}
-        </foreach>
-        from ${tableName} order by create_time desc
+        select * from ${tableName}
+        <if test="searchKey != null and searchKey!=''" >
+            <trim prefix="where" prefixOverrides="or" >
+                <foreach collection="searchField" index="index" item="name" separator=" ">
+                  or ${name} like '%${searchKey}%'
+                </foreach>
+            </trim>
+        </if>
+        order by create_time desc
     </select>
 
     <select id="detail" resultType="java.util.Map">