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