diff --git a/pom.xml b/pom.xml
index 059e4910..a37245f7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
io.github.talelin
merak
- 0.0.1-RC6
+ 0.1.0-RELEASE
merak
Demo project for lin cms
@@ -46,7 +46,7 @@
io.github.talelin
lin-cms-spring-boot-starter
- 0.0.1-RC6
+ 0.1.0-RELEASE
diff --git a/src/main/java/io/github/talelin/merak/common/aop/ResultAspect.java b/src/main/java/io/github/talelin/merak/common/aop/ResultAspect.java
index cee2e435..c9f644d9 100644
--- a/src/main/java/io/github/talelin/merak/common/aop/ResultAspect.java
+++ b/src/main/java/io/github/talelin/merak/common/aop/ResultAspect.java
@@ -30,7 +30,7 @@ public void doAfterReturning(Object ret) throws Throwable {
UnifyResponseVO result = (UnifyResponseVO) ret;
int code = result.getCode();
String message = CodeMessageConfiguration.getMessage(code);
- if (StrUtil.isNotBlank(message)) {
+ if (StrUtil.isNotBlank(message) && StrUtil.isBlank((CharSequence) result.getMessage())) {
result.setMessage(message);
}
}
diff --git a/src/main/java/io/github/talelin/merak/common/exception/RestExceptionHandler.java b/src/main/java/io/github/talelin/merak/common/exception/RestExceptionHandler.java
index b3241cb3..8d213428 100644
--- a/src/main/java/io/github/talelin/merak/common/exception/RestExceptionHandler.java
+++ b/src/main/java/io/github/talelin/merak/common/exception/RestExceptionHandler.java
@@ -51,10 +51,11 @@ public UnifyResponseVO processException(HttpException exception, HttpServletRequ
UnifyResponseVO unifyResponse = new UnifyResponseVO();
unifyResponse.setRequest(getSimpleRequest(request));
int code = exception.getCode();
+ boolean messageOnly = exception.isMessageOnly();
unifyResponse.setCode(code);
response.setStatus(exception.getHttpCode());
String errorMessage = CodeMessageConfiguration.getMessage(code);
- if (StrUtil.isBlank(errorMessage)) {
+ if (StrUtil.isBlank(errorMessage) || messageOnly) {
unifyResponse.setMessage(exception.getMessage());
} else {
unifyResponse.setMessage(errorMessage);
diff --git a/src/main/java/io/github/talelin/merak/common/interceptor/AuthorizeVerifyResolverImpl.java b/src/main/java/io/github/talelin/merak/common/interceptor/AuthorizeVerifyResolverImpl.java
index f7f4d951..b7a7a7c4 100644
--- a/src/main/java/io/github/talelin/merak/common/interceptor/AuthorizeVerifyResolverImpl.java
+++ b/src/main/java/io/github/talelin/merak/common/interceptor/AuthorizeVerifyResolverImpl.java
@@ -17,6 +17,7 @@
import io.github.talelin.core.token.DoubleJWT;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
@@ -42,6 +43,12 @@ public class AuthorizeVerifyResolverImpl implements AuthorizeVerifyResolver {
@Autowired
private GroupService groupService;
+ @Value("${lin.cms.file.domain}")
+ private String domain;
+
+ @Value("${lin.cms.file.serve-path:assets/**}")
+ private String servePath;
+
public boolean handleLogin(HttpServletRequest request, HttpServletResponse response, MetaInfo meta) {
String tokenStr = verifyHeader(request, response);
@@ -114,6 +121,13 @@ private boolean getClaim(Map claims) {
if (user == null) {
throw new NotFoundException("user is not found", 10021);
}
+ String avatarUrl;
+ if (user.getAvatar().startsWith("http")) {
+ avatarUrl = user.getAvatar();
+ } else {
+ avatarUrl = domain + servePath.split("/")[0] + "/" + user.getAvatar();
+ }
+ user.setAvatar(avatarUrl);
LocalUser.setLocalUser(user);
return true;
}
diff --git a/src/main/java/io/github/talelin/merak/controller/cms/AdminController.java b/src/main/java/io/github/talelin/merak/controller/cms/AdminController.java
index 104358c5..4a7f5bb4 100644
--- a/src/main/java/io/github/talelin/merak/controller/cms/AdminController.java
+++ b/src/main/java/io/github/talelin/merak/controller/cms/AdminController.java
@@ -67,21 +67,21 @@ public PageResponseVO getUsers(
@AdminMeta(permission = "修改用户密码", module = "管理员")
public UnifyResponseVO changeUserPassword(@PathVariable @Positive(message = "{id}") Long id, @RequestBody @Validated ResetPasswordDTO validator) {
adminService.changeUserPassword(id, validator);
- return ResponseUtil.generateUnifyResponse(2);
+ return ResponseUtil.generateUnifyResponse(4);
}
@DeleteMapping("/user/{id}")
@AdminMeta(permission = "删除用户", module = "管理员")
public UnifyResponseVO deleteUser(@PathVariable @Positive(message = "{id}") Long id) {
adminService.deleteUser(id);
- return ResponseUtil.generateUnifyResponse(3);
+ return ResponseUtil.generateUnifyResponse(5);
}
@PutMapping("/user/{id}")
@AdminMeta(permission = "管理员更新用户信息", module = "管理员")
public UnifyResponseVO updateUser(@PathVariable @Positive(message = "{id}") Long id, @RequestBody @Validated UpdateUserInfoDTO validator) {
adminService.updateUserInfo(id, validator);
- return ResponseUtil.generateUnifyResponse(4);
+ return ResponseUtil.generateUnifyResponse(6);
}
@GetMapping("/group")
@@ -113,7 +113,7 @@ public GroupPermissionBO getGroup(@PathVariable @Positive(message = "{id}") Long
@AdminMeta(permission = "新建权限组", module = "管理员")
public UnifyResponseVO createGroup(@RequestBody @Validated NewGroupDTO validator) {
adminService.createGroup(validator);
- return ResponseUtil.generateUnifyResponse(13);
+ return ResponseUtil.generateUnifyResponse(15);
}
@PutMapping("/group/{id}")
@@ -121,35 +121,35 @@ public UnifyResponseVO createGroup(@RequestBody @Validated NewGroupDTO validator
public UnifyResponseVO updateGroup(@PathVariable @Positive(message = "{id}") Long id,
@RequestBody @Validated UpdateGroupDTO validator) {
adminService.updateGroup(id, validator);
- return ResponseUtil.generateUnifyResponse(5);
+ return ResponseUtil.generateUnifyResponse(7);
}
@DeleteMapping("/group/{id}")
@AdminMeta(permission = "删除一个权限组", module = "管理员")
public UnifyResponseVO deleteGroup(@PathVariable @Positive(message = "{id}") Long id) {
adminService.deleteGroup(id);
- return ResponseUtil.generateUnifyResponse(6);
+ return ResponseUtil.generateUnifyResponse(8);
}
@PostMapping("/permission/dispatch")
@AdminMeta(permission = "分配单个权限", module = "管理员")
public UnifyResponseVO dispatchPermission(@RequestBody @Validated DispatchPermissionDTO validator) {
adminService.dispatchPermission(validator);
- return ResponseUtil.generateUnifyResponse(7);
+ return ResponseUtil.generateUnifyResponse(9);
}
@PostMapping("/permission/dispatch/batch")
@AdminMeta(permission = "分配多个权限", module = "管理员")
public UnifyResponseVO dispatchPermissions(@RequestBody @Validated DispatchPermissionsDTO validator) {
adminService.dispatchPermissions(validator);
- return ResponseUtil.generateUnifyResponse(7);
+ return ResponseUtil.generateUnifyResponse(9);
}
@PostMapping("/permission/remove")
@AdminMeta(permission = "删除多个权限", module = "管理员")
public UnifyResponseVO removePermissions(@RequestBody @Validated RemovePermissionsDTO validator) {
adminService.removePermissions(validator);
- return ResponseUtil.generateUnifyResponse(8);
+ return ResponseUtil.generateUnifyResponse(10);
}
}
diff --git a/src/main/java/io/github/talelin/merak/controller/cms/UserController.java b/src/main/java/io/github/talelin/merak/controller/cms/UserController.java
index 2c0df822..36878a41 100644
--- a/src/main/java/io/github/talelin/merak/controller/cms/UserController.java
+++ b/src/main/java/io/github/talelin/merak/controller/cms/UserController.java
@@ -55,7 +55,7 @@ public class UserController {
@AdminRequired
public UnifyResponseVO register(@RequestBody @Validated RegisterDTO validator) {
userService.createUser(validator);
- return ResponseUtil.generateUnifyResponse(9);
+ return ResponseUtil.generateUnifyResponse(11);
}
/**
@@ -83,7 +83,7 @@ public Tokens login(@RequestBody @Validated LoginDTO validator) {
@LoginRequired
public UnifyResponseVO update(@RequestBody @Validated UpdateInfoDTO validator) {
userService.updateUserInfo(validator);
- return ResponseUtil.generateUnifyResponse(4);
+ return ResponseUtil.generateUnifyResponse(6);
}
/**
@@ -93,7 +93,7 @@ public UnifyResponseVO update(@RequestBody @Validated UpdateInfoDTO validator) {
@LoginRequired
public UnifyResponseVO updatePassword(@RequestBody @Validated ChangePasswordDTO validator) {
userService.changeUserPassword(validator);
- return ResponseUtil.generateUnifyResponse(2);
+ return ResponseUtil.generateUnifyResponse(4);
}
/**
diff --git a/src/main/java/io/github/talelin/merak/controller/v1/BookController.java b/src/main/java/io/github/talelin/merak/controller/v1/BookController.java
index 052c7539..bf3b93e5 100644
--- a/src/main/java/io/github/talelin/merak/controller/v1/BookController.java
+++ b/src/main/java/io/github/talelin/merak/controller/v1/BookController.java
@@ -48,7 +48,7 @@ public List searchBook(@RequestParam(value = "q", required = false, defa
@PostMapping("")
public UnifyResponseVO createBook(@RequestBody @Validated CreateOrUpdateBookDTO validator) {
bookService.createBook(validator);
- return ResponseUtil.generateUnifyResponse(10);
+ return ResponseUtil.generateUnifyResponse(12);
}
@@ -59,7 +59,7 @@ public UnifyResponseVO updateBook(@PathVariable("id") @Positive(message = "{id}"
throw new NotFoundException("book not found", 10022);
}
bookService.updateBook(book, validator);
- return ResponseUtil.generateUnifyResponse(11);
+ return ResponseUtil.generateUnifyResponse(13);
}
@@ -71,7 +71,7 @@ public UnifyResponseVO deleteBook(@PathVariable("id") @Positive(message = "{id}"
throw new NotFoundException("book not found", 10022);
}
bookService.deleteById(book.getId());
- return ResponseUtil.generateUnifyResponse(12);
+ return ResponseUtil.generateUnifyResponse(14);
}
diff --git a/src/main/java/io/github/talelin/merak/vo/CreatedVO.java b/src/main/java/io/github/talelin/merak/vo/CreatedVO.java
new file mode 100644
index 00000000..1b32a1c5
--- /dev/null
+++ b/src/main/java/io/github/talelin/merak/vo/CreatedVO.java
@@ -0,0 +1,29 @@
+package io.github.talelin.merak.vo;
+
+import io.github.talelin.autoconfigure.bean.Code;
+import io.github.talelin.merak.common.util.ResponseUtil;
+import org.springframework.http.HttpStatus;
+
+public class CreatedVO extends UnifyResponseVO {
+
+ public CreatedVO() {
+ super(Code.CREATED.getCode());
+ ResponseUtil.setCurrentResponseHttpStatus(HttpStatus.CREATED.value());
+ }
+
+ public CreatedVO(int code) {
+ super(code);
+ ResponseUtil.setCurrentResponseHttpStatus(HttpStatus.CREATED.value());
+ }
+
+ public CreatedVO(T message) {
+ super(message);
+ ResponseUtil.setCurrentResponseHttpStatus(HttpStatus.CREATED.value());
+ }
+
+ public CreatedVO(int code, T message) {
+ super(code, message);
+ ResponseUtil.setCurrentResponseHttpStatus(HttpStatus.CREATED.value());
+ }
+
+}
diff --git a/src/main/java/io/github/talelin/merak/vo/DeletedVO.java b/src/main/java/io/github/talelin/merak/vo/DeletedVO.java
new file mode 100644
index 00000000..43d3c583
--- /dev/null
+++ b/src/main/java/io/github/talelin/merak/vo/DeletedVO.java
@@ -0,0 +1,23 @@
+package io.github.talelin.merak.vo;
+
+import io.github.talelin.autoconfigure.bean.Code;
+
+public class DeletedVO extends UnifyResponseVO {
+
+ public DeletedVO() {
+ super(Code.DELETED.getCode());
+ }
+
+ public DeletedVO(int code) {
+ super(code);
+ }
+
+ public DeletedVO(T message) {
+ super(message);
+ }
+
+ public DeletedVO(int code, T message) {
+ super(code, message);
+ }
+
+}
diff --git a/src/main/java/io/github/talelin/merak/vo/UnifyResponseVO.java b/src/main/java/io/github/talelin/merak/vo/UnifyResponseVO.java
index 944dd5dc..030a628e 100644
--- a/src/main/java/io/github/talelin/merak/vo/UnifyResponseVO.java
+++ b/src/main/java/io/github/talelin/merak/vo/UnifyResponseVO.java
@@ -1,9 +1,12 @@
package io.github.talelin.merak.vo;
+import io.github.talelin.autoconfigure.bean.Code;
+import io.github.talelin.autoconfigure.util.RequestUtil;
+import io.github.talelin.merak.common.util.ResponseUtil;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
-import lombok.NoArgsConstructor;
+import org.springframework.http.HttpStatus;
/**
@@ -12,7 +15,6 @@
@Data
@Builder
@AllArgsConstructor
-@NoArgsConstructor
public class UnifyResponseVO {
private int code;
@@ -20,4 +22,55 @@ public class UnifyResponseVO {
private T message;
private String request;
+
+ public UnifyResponseVO() {
+ this.code = Code.SUCCESS.getCode();
+ this.request = RequestUtil.getSimpleRequest();
+ }
+
+ public UnifyResponseVO(int code) {
+ this.code = code;
+ this.request = RequestUtil.getSimpleRequest();
+ }
+
+ public UnifyResponseVO(T message) {
+ this.code = Code.SUCCESS.getCode();
+ this.message = message;
+ this.request = RequestUtil.getSimpleRequest();
+ }
+
+ public UnifyResponseVO(HttpStatus httpStatus) {
+ this.code = Code.SUCCESS.getCode();
+ this.message = (T) Code.SUCCESS.getDescription();
+ this.request = RequestUtil.getSimpleRequest();
+ ResponseUtil.setCurrentResponseHttpStatus(httpStatus.value());
+ }
+
+ public UnifyResponseVO(int code, T message) {
+ this.code = code;
+ this.message = message;
+ this.request = RequestUtil.getSimpleRequest();
+ }
+
+ public UnifyResponseVO(int code, HttpStatus httpStatus) {
+ this.code = code;
+ this.message = (T) Code.SUCCESS.getDescription();
+ this.request = RequestUtil.getSimpleRequest();
+ ResponseUtil.setCurrentResponseHttpStatus(httpStatus.value());
+ }
+
+ public UnifyResponseVO(T message, HttpStatus httpStatus) {
+ this.code = Code.SUCCESS.getCode();
+ this.message = message;
+ this.request = RequestUtil.getSimpleRequest();
+ ResponseUtil.setCurrentResponseHttpStatus(httpStatus.value());
+ }
+
+ public UnifyResponseVO(int code, T message, HttpStatus httpStatus) {
+ this.code = code;
+ this.message = message;
+ this.request = RequestUtil.getSimpleRequest();
+ ResponseUtil.setCurrentResponseHttpStatus(httpStatus.value());
+ }
+
}
diff --git a/src/main/java/io/github/talelin/merak/vo/UpdatedVO.java b/src/main/java/io/github/talelin/merak/vo/UpdatedVO.java
new file mode 100644
index 00000000..ed8194c3
--- /dev/null
+++ b/src/main/java/io/github/talelin/merak/vo/UpdatedVO.java
@@ -0,0 +1,23 @@
+package io.github.talelin.merak.vo;
+
+import io.github.talelin.autoconfigure.bean.Code;
+
+public class UpdatedVO extends UnifyResponseVO {
+
+ public UpdatedVO() {
+ super(Code.UPDATED.getCode());
+ }
+
+ public UpdatedVO(int code) {
+ super(code);
+ }
+
+ public UpdatedVO(T message) {
+ super(message);
+ }
+
+ public UpdatedVO(int code, T message) {
+ super(code, message);
+ }
+
+}
diff --git a/src/main/resources/code-message.properties b/src/main/resources/code-message.properties
index e14328b4..9d413d53 100644
--- a/src/main/resources/code-message.properties
+++ b/src/main/resources/code-message.properties
@@ -1,44 +1,44 @@
# \u6D88\u606F\u7801\u914D\u7F6E\u6587\u4EF6
# \u683C\u5F0F\uFF1A\u6D88\u606F\u7801 -> \u6D88\u606F
-# \u82E5\u6D88\u606F\u7801\u88AB\u6CE8\u91CA\uFF0C\u5219\u8868\u793A\u8BE5\u6D88\u606F\u7801\u9ED8\u8BA4\u5DF2\u7ECF\u4F7F\u7528\uFF0C\u8D34\u5728\u8FD9\u5E0C\u671B\u544A\u8BC9\u5F00\u53D1\u8005\u6CE8\u610F
-# \u82E5\u65E0\u7279\u6B8A\u9700\u6C42\uFF0C\u4E0D\u8981\u5728\u914D\u7F6E\u6587\u4EF6\u4E2D\u542F\u7528\u5B83\uFF0C\u5426\u5219\u5185\u7F6E\u7684\u5F02\u5E38\u4FE1\u606F\u5C06\u4F1A\u88AB\u8986\u76D6
-# code-message[0]=\u6210\u529F
-# code-message[1]=\u521B\u5EFA\u6210\u529F
-code-message[2]=\u5BC6\u7801\u4FEE\u6539\u6210\u529F
-code-message[3]=\u5220\u9664\u7528\u6237\u6210\u529F
-code-message[4]=\u66F4\u65B0\u7528\u6237\u6210\u529F
-code-message[5]=\u66F4\u65B0\u5206\u7EC4\u6210\u529F
-code-message[6]=\u5220\u9664\u5206\u7EC4\u6210\u529F
-code-message[7]=\u6DFB\u52A0\u6743\u9650\u6210\u529F
-code-message[8]=\u5220\u9664\u6743\u9650\u6210\u529F
-code-message[9]=\u6CE8\u518C\u6210\u529F
-code-message[10]=\u65B0\u5EFA\u56FE\u4E66\u6210\u529F
-code-message[11]=\u66F4\u65B0\u56FE\u4E66\u6210\u529F
-code-message[12]=\u5220\u9664\u56FE\u4E66\u6210\u529F
-code-message[13]=\u65B0\u5EFA\u5206\u7EC4\u6210\u529F
-# code-message[9999]=\u670D\u52A1\u5668\u672A\u77E5\u9519\u8BEF
-# code-message[10000]=\u8BA4\u8BC1\u5931\u8D25
+code-message[0]=\u6210\u529F
+code-message[1]=\u521B\u5EFA\u6210\u529F
+code-message[2]=\u66F4\u65B0\u6210\u529F
+code-message[3]=\u5220\u9664\u6210\u529F
+code-message[4]=\u5BC6\u7801\u4FEE\u6539\u6210\u529F
+code-message[5]=\u5220\u9664\u7528\u6237\u6210\u529F
+code-message[6]=\u66F4\u65B0\u7528\u6237\u6210\u529F
+code-message[7]=\u66F4\u65B0\u5206\u7EC4\u6210\u529F
+code-message[8]=\u5220\u9664\u5206\u7EC4\u6210\u529F
+code-message[9]=\u6DFB\u52A0\u6743\u9650\u6210\u529F
+code-message[10]=\u5220\u9664\u6743\u9650\u6210\u529F
+code-message[11]=\u6CE8\u518C\u6210\u529F
+code-message[12]=\u65B0\u5EFA\u56FE\u4E66\u6210\u529F
+code-message[13]=\u66F4\u65B0\u56FE\u4E66\u6210\u529F
+code-message[14]=\u5220\u9664\u56FE\u4E66\u6210\u529F
+code-message[15]=\u65B0\u5EFA\u5206\u7EC4\u6210\u529F
+code-message[9999]=\u670D\u52A1\u5668\u672A\u77E5\u9519\u8BEF
+code-message[10000]=\u8BA4\u8BC1\u5931\u8D25
code-message[10001]=\u6743\u9650\u4E0D\u8DB3
-# code-message[10010]=\u6388\u6743\u5931\u8D25
+code-message[10010]=\u6388\u6743\u5931\u8D25
code-message[10011]=\u66F4\u65B0\u5BC6\u7801\u5931\u8D25
code-message[10012]=\u8BF7\u4F20\u5165\u8BA4\u8BC1\u5934\u5B57\u6BB5
code-message[10013]=\u8BA4\u8BC1\u5934\u5B57\u6BB5\u89E3\u6790\u5931\u8D25
-# code-message[10020]=\u8D44\u6E90\u4E0D\u5B58\u5728
+code-message[10020]=\u8D44\u6E90\u4E0D\u5B58\u5728
code-message[10021]=\u7528\u6237\u4E0D\u5B58\u5728
code-message[10022]=\u672A\u627E\u5230\u76F8\u5173\u4E66\u7C4D
code-message[10023]=\u5206\u7EC4\u4E0D\u5B58\u5728\uFF0C\u65E0\u6CD5\u65B0\u5EFA\u7528\u6237
code-message[10024]=\u5206\u7EC4\u4E0D\u5B58\u5728
code-message[10025]=\u627E\u4E0D\u5230\u76F8\u5E94\u7684\u89C6\u56FE\u5904\u7406\u5668
code-message[10026]=\u672A\u627E\u5230\u6587\u4EF6
-# code-message[10030]=\u53C2\u6570\u9519\u8BEF
+code-message[10030]=\u53C2\u6570\u9519\u8BEF
code-message[10031]=\u7528\u6237\u540D\u6216\u5BC6\u7801\u9519\u8BEF
code-message[10032]=\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u5BC6\u7801
-# code-message[10040]=\u4EE4\u724C\u5931\u6548
+code-message[10040]=\u4EE4\u724C\u5931\u6548
code-message[10041]=\u4EE4\u724C\u635F\u574F\uFF0C\u89E3\u6790\u5931\u8D25
-# code-message[10050]=\u4EE4\u724C\u8FC7\u671F
+code-message[10050]=\u4EE4\u724C\u8FC7\u671F
code-message[10051]=\u4EE4\u724C\u8FC7\u671F
-# code-message[10060]=\u5B57\u6BB5\u91CD\u590D
-# code-message[10070]=\u7981\u6B62\u64CD\u4F5C
+code-message[10060]=\u5B57\u6BB5\u91CD\u590D
+code-message[10070]=\u7981\u6B62\u64CD\u4F5C
code-message[10071]=\u5DF2\u7ECF\u6709\u7528\u6237\u4F7F\u7528\u4E86\u8BE5\u540D\u79F0\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165\u65B0\u7684\u7528\u6237\u540D
code-message[10072]=\u5206\u7EC4\u540D\u5DF2\u88AB\u4F7F\u7528\uFF0C\u8BF7\u91CD\u65B0\u586B\u5165\u65B0\u7684\u5206\u7EC4\u540D
code-message[10073]=root\u5206\u7EC4\u4E0D\u53EF\u6DFB\u52A0\u7528\u6237
@@ -47,16 +47,16 @@ code-message[10075]=guest\u5206\u7EC4\u4E0D\u53EF\u5220\u9664
code-message[10076]=\u90AE\u7BB1\u5DF2\u88AB\u4F7F\u7528\uFF0C\u8BF7\u91CD\u65B0\u586B\u5165\u65B0\u7684\u90AE\u7BB1
code-message[10077]=\u4E0D\u53EF\u5C06\u7528\u6237\u5206\u914D\u7ED9\u4E0D\u5B58\u5728\u7684\u5206\u7EC4
code-message[10078]=\u4E0D\u53EF\u4FEE\u6539root\u7528\u6237\u7684\u5206\u7EC4
-# code-message[10080]=\u8BF7\u6C42\u65B9\u6CD5\u4E0D\u5141\u8BB8
-# code-message[10100]=\u5237\u65B0\u4EE4\u724C\u83B7\u53D6\u5931\u8D25
-# code-message[10110]=\u6587\u4EF6\u4F53\u79EF\u8FC7\u5927
-# code-message[10120]=\u6587\u4EF6\u6570\u91CF\u8FC7\u591A
+code-message[10080]=\u8BF7\u6C42\u65B9\u6CD5\u4E0D\u5141\u8BB8
+code-message[10100]=\u5237\u65B0\u4EE4\u724C\u83B7\u53D6\u5931\u8D25
+code-message[10110]=\u6587\u4EF6\u4F53\u79EF\u8FC7\u5927
+code-message[10120]=\u6587\u4EF6\u6570\u91CF\u8FC7\u591A
code-message[10121]=\u6587\u4EF6\u592A\u591A\uFF0C\u6587\u4EF6\u603B\u6570\u4E0D\u53EF\u8D85\u8FC7${file.nums}
-# code-message[10130]=\u6587\u4EF6\u6269\u5C55\u540D\u4E0D\u7B26\u5408\u89C4\u8303
-# code-message[10140]=\u8BF7\u6C42\u8FC7\u4E8E\u9891\u7E41\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5
+code-message[10130]=\u6587\u4EF6\u6269\u5C55\u540D\u4E0D\u7B26\u5408\u89C4\u8303
+code-message[10140]=\u8BF7\u6C42\u8FC7\u4E8E\u9891\u7E41\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5
code-message[10150]=\u4E22\u5931\u53C2\u6570
code-message[10160]=\u7C7B\u578B\u9519\u8BEF
code-message[10170]=\u8BF7\u6C42\u4F53\u4E0D\u53EF\u4E3A\u7A7A
code-message[10180]=\u5168\u90E8\u6587\u4EF6\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7
code-message[10190]=\u8BFB\u53D6\u6587\u4EF6\u6570\u636E\u5931\u8D25
-# code-message[10200]=\u5931\u8D25
\ No newline at end of file
+code-message[10200]=\u5931\u8D25
\ No newline at end of file