Explorar el Código

修改id为UUID

lrf hace 8 meses
padre
commit
9912eeea73

+ 25 - 0
src/main/java/com/free/config/ApplicationStartup.java

@@ -0,0 +1,25 @@
+package com.free.config;
+
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.context.event.ApplicationReadyEvent;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+import com.free.service.system.AdminService;
+
+/**项目启动后执行函数 */
+@Component
+public class ApplicationStartup {
+  @Autowired
+  AdminService adminService;
+
+  @EventListener(ApplicationReadyEvent.class)
+  public void onApplicationReady() {
+    System.out.println("Spring Boot application started.");
+    // 执行需要的逻辑
+    // Map admin = adminService.getMap(null);
+    // System.out.println(admin);
+  }
+}

+ 2 - 2
src/main/java/com/free/controller/LoginController.java

@@ -184,7 +184,7 @@ public class LoginController {
      * 3-2.客服人员:
      * 4.根据角色获取指定目录
      */
-    Long user_id = Long.valueOf(String.valueOf(userMap.get("id")));
+    String user_id = (String) userMap.get("id");
     String type = (String) userMap.get("type");
     Map<String, Object> userInfo = null;
     if (this.adminLoginType.equals(type)) {
@@ -212,7 +212,7 @@ public class LoginController {
       throw new CustomizationException(ExceptionEnum.TOKEN_ERROR);
     }
     // 根据角色获取目录
-    Long role = Long.valueOf(String.valueOf(userInfo.get("role")));
+    String role = (String) userInfo.get("role");
     QueryWrapper roleQW = new QueryWrapper<>();
     roleQW.eq("id", role);
     roleQW.eq("is_use", "0");

+ 1 - 1
src/main/java/com/free/controller/QuestionController.java

@@ -134,7 +134,7 @@ public class QuestionController {
     service.removeById(id);
     return ResponseFormat.success();
   }
-
+  @PassToken
   @ApiOperation("初始化问题")
   @PostMapping("/initData")
   public Object initData() throws JsonProcessingException {

+ 18 - 0
src/main/java/com/free/controller/system/DictDataController.java

@@ -19,11 +19,16 @@ import org.springframework.web.bind.annotation.RestController;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.type.CollectionType;
+import com.free.annotation.PassToken;
 import com.free.config.CustomizationException;
 import com.free.config.ExceptionEnum;
 import com.free.config.ResponseFormat;
 import com.free.entity.system.DictData;
 import com.free.service.system.DictDataService;
+import com.free.utils.Utils;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -119,4 +124,17 @@ public class DictDataController {
     service.removeById(id);
     return ResponseFormat.success();
   }
+
+  @PassToken
+  @ApiOperation("初始化字典内容")
+  @PostMapping("/initData")
+  public Object initData() throws JsonProcessingException {
+    String filePath = "db/dictData.json";
+    ObjectMapper mapper = new ObjectMapper();
+    String str = Utils.readJsonFile(filePath);
+    CollectionType javaType = mapper.getTypeFactory().constructCollectionType(List.class, Map.class);
+    List<Map> list = mapper.readValue(str, javaType);
+    this.service.initData(list);
+    return ResponseFormat.success();
+  }
 }

+ 19 - 0
src/main/java/com/free/controller/system/DictTypeController.java

@@ -19,11 +19,16 @@ import org.springframework.web.bind.annotation.RestController;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.type.CollectionType;
+import com.free.annotation.PassToken;
 import com.free.config.CustomizationException;
 import com.free.config.ExceptionEnum;
 import com.free.config.ResponseFormat;
 import com.free.entity.system.DictType;
 import com.free.service.system.DictTypeService;
+import com.free.utils.Utils;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -123,4 +128,18 @@ public class DictTypeController {
     service.removeById(id);
     return ResponseFormat.success();
   }
+
+
+  @PassToken
+  @ApiOperation("初始化字典内容")
+  @PostMapping("/initData")
+  public Object initData() throws JsonProcessingException {
+    String filePath = "db/dictType.json";
+    ObjectMapper mapper = new ObjectMapper();
+    String str = Utils.readJsonFile(filePath);
+    CollectionType javaType = mapper.getTypeFactory().constructCollectionType(List.class, Map.class);
+    List<Map> list = mapper.readValue(str, javaType);
+    this.service.initData(list);
+    return ResponseFormat.success();
+  }
 }

+ 2 - 1
src/main/java/com/free/entity/ChatRecord.java

@@ -4,6 +4,7 @@ import java.time.LocalDateTime;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.OrderBy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -43,6 +44,7 @@ public class ChatRecord extends BaseEntity {
   @ApiModelProperty("用户id")
   private String user_id;
 
+  @OrderBy(asc = true)
   @TableField(fill = FieldFill.INSERT)
   @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
   @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -59,7 +61,6 @@ public class ChatRecord extends BaseEntity {
   @ApiModelProperty("内容类型")
   private String content_type;
 
-
   @Column(comment = "已读/未读", defaultValue = "0")
   @TableField(value = "is_read")
   @ApiModelProperty("已读/未读")

+ 2 - 0
src/main/java/com/free/entity/History.java

@@ -1,6 +1,7 @@
 package com.free.entity;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.OrderBy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -33,6 +34,7 @@ public class History extends BaseEntity {
   @TableField(value = "views")
   @ApiModelProperty("浏览次数")
   private int views;
+  @OrderBy(asc = false)
   @TableField(value = "time")
   @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
   @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

+ 3 - 0
src/main/java/com/free/entity/system/DictData.java

@@ -1,5 +1,6 @@
 package com.free.entity.system;
 
+import com.baomidou.mybatisplus.annotation.OrderBy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.free.utils.BaseEntity;
@@ -29,6 +30,8 @@ public class DictData extends BaseEntity {
   @TableField(value = "value")
   @ApiModelProperty("数据存储值")
   private String value;
+
+  @OrderBy(asc = true)
   @Column(comment = "显示顺序")
   @TableField(value = "sort")
   @ApiModelProperty("显示顺序")

+ 5 - 3
src/main/java/com/free/entity/system/Menus.java

@@ -1,5 +1,6 @@
 package com.free.entity.system;
 
+import com.baomidou.mybatisplus.annotation.OrderBy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.free.utils.BaseEntity;
@@ -16,8 +17,8 @@ import lombok.EqualsAndHashCode;
 @Table(name = "menus")
 @TableName(value = "menus")
 @ApiModel("管理端目录表")
-public class Menus extends BaseEntity{
-  
+public class Menus extends BaseEntity {
+
   @Column(comment = "名称")
   @TableField(value = "name")
   @ApiModelProperty("名称")
@@ -32,12 +33,13 @@ public class Menus extends BaseEntity{
   @TableField(value = "route_name")
   @ApiModelProperty("路由名称")
   private String route_name;
-  
+
   @Column(comment = "父级id")
   @TableField(value = "parent_id")
   @ApiModelProperty("父级id")
   private String parent_id;
 
+  @OrderBy(asc = true)
   @Column(comment = "显示顺序")
   @TableField(value = "order_num")
   @ApiModelProperty("显示顺序")

+ 16 - 2
src/main/java/com/free/service/system/DictDataService.java

@@ -1,12 +1,26 @@
 package com.free.service.system;
 
+import java.util.List;
+import java.util.Map;
+
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.free.entity.system.DictData;
 import com.free.mapper.system.DictDataMapper;
 
 @Service
-public class DictDataService extends ServiceImpl<DictDataMapper, DictData>{
-  
+public class DictDataService extends ServiceImpl<DictDataMapper, DictData> {
+
+  public void initData(List<Map> list) {
+    // 清空表
+    ObjectMapper mapper = new ObjectMapper();
+    this.baseMapper.truncate();
+    for (int i = 0; i < list.size(); i++) {
+      Map m = list.get(i);
+      DictData roleData = mapper.convertValue(m, DictData.class);
+      this.save(roleData);
+    }
+  }
 }

+ 14 - 1
src/main/java/com/free/service/system/DictTypeService.java

@@ -1,12 +1,25 @@
 package com.free.service.system;
 
+import java.util.List;
+import java.util.Map;
+
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.free.entity.system.DictType;
 import com.free.mapper.system.DictTypeMapper;
 
 @Service
 public class DictTypeService extends ServiceImpl<DictTypeMapper, DictType>{
-  
+  public void initData(List<Map> list) {
+    // 清空表
+    ObjectMapper mapper = new ObjectMapper();
+    this.baseMapper.truncate();
+    for (int i = 0; i < list.size(); i++) {
+      Map m = list.get(i);
+      DictType roleData = mapper.convertValue(m, DictType.class);
+      this.save(roleData);
+    }
+  }
 }

+ 1 - 1
src/main/java/com/free/service/system/MenusService.java

@@ -88,7 +88,7 @@ public class MenusService extends ServiceImpl<MenusMapper, Menus> {
       // 找children
       for (Map<String, Object> am : allList) {
         String parent_id = (String) am.get("parent_id");
-        if (parent_id.equals(id)) {
+        if (null!= parent_id && parent_id.equals(id)) {
           // 为子目录,放入children中
           am.put("parent_name", name);
           children.add(am);

+ 7 - 20
src/main/java/com/free/utils/JwtUtil.java

@@ -34,9 +34,6 @@ public class JwtUtil {
   private static final long EXPIRE_TIME = EXPIRE_MIN * 60 * 1000;
   // 密钥
   private static final String SECRET = "Ziyouyanfa!@#";
-  /** 特殊处理的key,id和role.因为是long类型 */
-  private static String spcialKeyId = "id";
-  private static String spcialKeyRole = "role";
 
   @Autowired
   private LoginRecordService lrs;
@@ -63,13 +60,8 @@ public class JwtUtil {
 
     for (Map.Entry<String, Object> entry : map.entrySet()) {
       String k = entry.getKey();
-      if (spcialKeyId.equals(k) || spcialKeyRole.equals(k)) {
-        Long v = (Long) entry.getValue();
-        builder.withClaim(k, v);
-      } else {
-        String v = (String) entry.getValue();
-        builder.withClaim(k, v);
-      }
+      String v = (String) entry.getValue();
+      builder.withClaim(k, v);
     }
     String token = builder.withExpiresAt(date)
         .sign(algorithm);
@@ -90,7 +82,7 @@ public class JwtUtil {
    */
   public static void logOff(String token) {
     Map<String, Object> map = getDetails(token);
-    Long user_id = (Long) map.get("id");
+    String user_id = (String) map.get("id");
     String type = (String) map.get("type");
     QueryWrapper<LoginRecord> qw = new QueryWrapper<>();
     qw.eq("user_id", user_id);
@@ -160,7 +152,7 @@ public class JwtUtil {
    */
   public static void renewal(String token) {
     Map<String, Object> map = getDetails(token);
-    Long user_id = (Long) map.get("id");
+    String user_id = (String) map.get("id");
     String type = (String) map.get("type");
     QueryWrapper<LoginRecord> qw = new QueryWrapper<>();
     qw.eq("user_id", user_id).eq("type", type);
@@ -194,7 +186,7 @@ public class JwtUtil {
   public static void verify(String token) {
     // 解开token,查看数据
     Map<String, Object> map = getDetails(token);
-    Long user_id = (Long) map.get("id");
+    String user_id = (String) map.get("id");
     String type = (String) map.get("type");
     QueryWrapper<LoginRecord> qw = new QueryWrapper<>();
     qw.eq("user_id", user_id).eq("type", type);
@@ -235,13 +227,8 @@ public class JwtUtil {
       Map<String, Object> returnMap = new HashMap<>();
       for (Map.Entry<String, Claim> entry : map.entrySet()) {
         String k = entry.getKey();
-        if (spcialKeyId.equals(k) || spcialKeyRole.equals(k)) {
-          Long v = jwt.getClaim(k).asLong();
-          returnMap.put(k, v);
-        } else {
-          String v = jwt.getClaim(k).asString();
-          returnMap.put(k, v);
-        }
+        String v = jwt.getClaim(k).asString();
+        returnMap.put(k, v);
       }
       return returnMap;
     } catch (Exception e) {

+ 1 - 1
src/main/resources/application.yml

@@ -16,7 +16,7 @@ spring:
       location: D:/temp/customerUpload/
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://192.168.1.153:3306/customer-test?serverTimezone=GMT%2B8
+    url: jdbc:mysql://192.168.1.153:3306/customer?serverTimezone=GMT%2B8
     username: root
     password: root
   rabbitmq:

+ 0 - 10
src/main/resources/db/menus.json

@@ -58,16 +58,6 @@
     "route_name": "platform",
     "icon":"el-icon-tickets",
     "children": [
-      {
-        "name": "基础设置",
-        "path": "/platform/basic",
-        "component": "/platform/basic/index",
-        "type": "1",
-        "is_default": "0",
-        "is_use": "0",
-        "route_name": "platform_basic",
-        "icon":"el-icon-tickets"
-      },
       {
         "name": "角色管理",
         "path": "/platform/role",