From aeb372bc17a82d1284edcbf60eda30ebdcf66834 Mon Sep 17 00:00:00 2001 From: xupei Date: Mon, 19 May 2025 14:02:42 +0800 Subject: [PATCH] =?UTF-8?q?TASK:=E4=BC=81=E4=B8=9A=E3=80=81=E6=95=99?= =?UTF-8?q?=E8=82=B2=E7=89=88library=E5=85=83=E7=B4=A0=E5=85=B1=E4=BA=AB?= =?UTF-8?q?=E3=80=81=E4=BD=9C=E5=93=81=E5=B9=BF=E5=9C=BA=E4=BD=9C=E5=93=81?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E5=88=B0=E5=85=AC=E5=85=B1gallery?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ConvenientInquiryController.java | 14 +++ .../ai/da/controller/LibraryController.java | 40 ++++++- .../ai/da/controller/PortfolioController.java | 7 ++ .../mapper/primary/EductionLibraryMapper.java | 8 ++ .../primary/EnterpriseLibraryMapper.java | 7 ++ .../ai/da/mapper/primary/LibraryMapper.java | 9 ++ .../da/mapper/primary/OrganizationMapper.java | 7 ++ .../ai/da/mapper/primary/entity/Account.java | 2 + .../primary/entity/EducationLibrary.java | 18 +++ .../primary/entity/EnterpriseLibrary.java | 18 +++ .../mapper/primary/entity/Organization.java | 23 ++++ .../da/mapper/primary/entity/Portfolio.java | 6 + .../da/model/dto/QueryPortfolioPageDTO.java | 2 + .../da/service/ConvenientInquiryService.java | 5 + .../com/ai/da/service/LibraryService.java | 8 ++ .../com/ai/da/service/PortfolioService.java | 2 + .../impl/ConvenientInquiryServiceImpl.java | 31 ++++- .../da/service/impl/LibraryServiceImpl.java | 112 ++++++++++++++++++ .../da/service/impl/PortfolioServiceImpl.java | 32 +++++ .../mapper/primary/LibraryMapper.xml | 42 +++++++ src/main/resources/messages_en.properties | 2 + src/main/resources/messages_zh.properties | 2 + 22 files changed, 389 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/ai/da/mapper/primary/EductionLibraryMapper.java create mode 100644 src/main/java/com/ai/da/mapper/primary/EnterpriseLibraryMapper.java create mode 100644 src/main/java/com/ai/da/mapper/primary/OrganizationMapper.java create mode 100644 src/main/java/com/ai/da/mapper/primary/entity/EducationLibrary.java create mode 100644 src/main/java/com/ai/da/mapper/primary/entity/EnterpriseLibrary.java create mode 100644 src/main/java/com/ai/da/mapper/primary/entity/Organization.java create mode 100644 src/main/resources/mapper/primary/LibraryMapper.xml diff --git a/src/main/java/com/ai/da/controller/ConvenientInquiryController.java b/src/main/java/com/ai/da/controller/ConvenientInquiryController.java index 9acaa9a4..f19db4c0 100644 --- a/src/main/java/com/ai/da/controller/ConvenientInquiryController.java +++ b/src/main/java/com/ai/da/controller/ConvenientInquiryController.java @@ -6,6 +6,7 @@ import com.ai.da.common.response.PageBaseResponse; import com.ai.da.common.response.Response; import com.ai.da.mapper.primary.DesignMapper; import com.ai.da.mapper.primary.entity.Account; +import com.ai.da.mapper.primary.entity.Organization; import com.ai.da.mapper.primary.entity.TrialOrder; import com.ai.da.model.dto.*; import com.ai.da.model.vo.PaymentInfoVO; @@ -206,4 +207,17 @@ public class ConvenientInquiryController { return Response.success(convenientInquiryService.getAllGenerateFuncName()); } + @ApiOperation("添加组织机构") + @GetMapping("/addOrganization") + public Response addOrganization(@ApiParam(value = "机构名") @RequestParam String name, @ApiParam(value = "Enterprise || Education") @RequestParam String type){ + convenientInquiryService.addOrganization(name, type); + return Response.success(); + } + + @ApiOperation("查询所有企业或教育机构") + @GetMapping("/queryOrganization") + public Response> queryOrganization(@ApiParam(value = "Enterprise || Education") @RequestParam String type){ + return Response.success(convenientInquiryService.queryOrganization(type)); + } + } diff --git a/src/main/java/com/ai/da/controller/LibraryController.java b/src/main/java/com/ai/da/controller/LibraryController.java index fa997ac0..a86ec745 100644 --- a/src/main/java/com/ai/da/controller/LibraryController.java +++ b/src/main/java/com/ai/da/controller/LibraryController.java @@ -27,10 +27,7 @@ import javax.annotation.Resource; import javax.validation.Valid; import java.io.File; import java.text.ParseException; -import java.util.Date; -import java.util.Map; -import java.util.Objects; -import java.util.UUID; +import java.util.*; @Api(tags = "library模块") @@ -210,4 +207,39 @@ public class LibraryController { return Response.success(libraryService.addSysModelToLib(sysModelId)); } + @ApiOperation(value = "将个人library元素添加到公共库") + @GetMapping("addToPublicLibrary") + public Response addToPublicLibrary(@ApiParam("元素的libraryId") @RequestParam("libraryId") Long libraryId){ + boolean b = libraryService.saveToOrganizationLibrary(libraryId); + if (b){ + return Response.success("success"); + }else { + return Response.success("fail"); + } + } + + @ApiOperation(value = "将个人library元素从公共库中删除") + @GetMapping("deleteFromPublicLib") + public Response deleteFromPublicLib(@ApiParam("元素的libraryId") @RequestParam("libraryId") Long libraryId){ + libraryService.deleteFromPublicLib(libraryId); + return Response.success("success"); + } + + @ApiOperation(value = "获取公共库") + @GetMapping("getPublicLib") + public Response> getPublicLib(@ApiParam("排序" ) @RequestParam(value = "order", defaultValue = "DESC", required = false) String order, + @ApiParam("page") @RequestParam(value = "page", defaultValue = "1", required = false) Long page, + @ApiParam("size") @RequestParam(value = "size", defaultValue = "20", required = false) Long size){ + + return Response.success(libraryService.getPublicLib(order, page, size)); + } + + @ApiOperation(value = "管理员获取所有子账号lib元素") + @GetMapping("getAllSubAccLib") + public Response> getAllSubAccLib(@ApiParam("排序") @RequestParam(value = "order", defaultValue = "DESC", required = false) String order, + @ApiParam("page") @RequestParam(value = "page", defaultValue = "1", required = false) Long page, + @ApiParam("size") @RequestParam(value = "size", defaultValue = "20", required = false) Long size){ + return Response.success(libraryService.getAllSubAccLib(order, page, size)); + } + } diff --git a/src/main/java/com/ai/da/controller/PortfolioController.java b/src/main/java/com/ai/da/controller/PortfolioController.java index 99accd06..5786c078 100644 --- a/src/main/java/com/ai/da/controller/PortfolioController.java +++ b/src/main/java/com/ai/da/controller/PortfolioController.java @@ -154,4 +154,11 @@ public class PortfolioController { @RequestParam(value = "tagId", required = false) Long tagId) { return Response.success(portfolioService.queryPortfolioByTag(tagName, tagId)); }*/ + + @ApiOperation(value = "将企业或教育版中的作品发布到公共gallery") + @GetMapping("/toPublic") + public Response setPortfolioToPublic(@RequestParam("portfolioId") Long portfolioId) { + portfolioService.setPortfolioToPublic(portfolioId); + return Response.success("success"); + } } diff --git a/src/main/java/com/ai/da/mapper/primary/EductionLibraryMapper.java b/src/main/java/com/ai/da/mapper/primary/EductionLibraryMapper.java new file mode 100644 index 00000000..be31b7b2 --- /dev/null +++ b/src/main/java/com/ai/da/mapper/primary/EductionLibraryMapper.java @@ -0,0 +1,8 @@ +package com.ai.da.mapper.primary; + +import com.ai.da.common.config.mybatis.plus.CommonMapper; +import com.ai.da.mapper.primary.entity.EducationLibrary; + +public interface EductionLibraryMapper extends CommonMapper { + +} diff --git a/src/main/java/com/ai/da/mapper/primary/EnterpriseLibraryMapper.java b/src/main/java/com/ai/da/mapper/primary/EnterpriseLibraryMapper.java new file mode 100644 index 00000000..a119acf6 --- /dev/null +++ b/src/main/java/com/ai/da/mapper/primary/EnterpriseLibraryMapper.java @@ -0,0 +1,7 @@ +package com.ai.da.mapper.primary; + +import com.ai.da.common.config.mybatis.plus.CommonMapper; +import com.ai.da.mapper.primary.entity.EnterpriseLibrary; + +public interface EnterpriseLibraryMapper extends CommonMapper { +} diff --git a/src/main/java/com/ai/da/mapper/primary/LibraryMapper.java b/src/main/java/com/ai/da/mapper/primary/LibraryMapper.java index c78aa467..f530ac67 100644 --- a/src/main/java/com/ai/da/mapper/primary/LibraryMapper.java +++ b/src/main/java/com/ai/da/mapper/primary/LibraryMapper.java @@ -3,6 +3,8 @@ package com.ai.da.mapper.primary; import com.ai.da.common.config.mybatis.plus.CommonMapper; import com.ai.da.mapper.primary.entity.Library; +import java.util.List; + /** * Mapper 接口 * @@ -11,4 +13,11 @@ import com.ai.da.mapper.primary.entity.Library; */ public interface LibraryMapper extends CommonMapper { + List selectCommonLib(Long organizationId, String sort, long limit, long offset); + + Long selectCommonLibCount(Long organizationId); + + List selectAllSubAccLib(Long organizationId, String sort, long limit, long offset); + + Long selectAllSubAccLibCount(Long organizationId); } diff --git a/src/main/java/com/ai/da/mapper/primary/OrganizationMapper.java b/src/main/java/com/ai/da/mapper/primary/OrganizationMapper.java new file mode 100644 index 00000000..ea1bab8c --- /dev/null +++ b/src/main/java/com/ai/da/mapper/primary/OrganizationMapper.java @@ -0,0 +1,7 @@ +package com.ai.da.mapper.primary; + +import com.ai.da.common.config.mybatis.plus.CommonMapper; +import com.ai.da.mapper.primary.entity.Organization; + +public interface OrganizationMapper extends CommonMapper { +} diff --git a/src/main/java/com/ai/da/mapper/primary/entity/Account.java b/src/main/java/com/ai/da/mapper/primary/entity/Account.java index 952564d9..ecfc9e15 100644 --- a/src/main/java/com/ai/da/mapper/primary/entity/Account.java +++ b/src/main/java/com/ai/da/mapper/primary/entity/Account.java @@ -117,6 +117,8 @@ public class Account implements Serializable { private String organizationName; + private Long organizationId; + private Long parentId; private Integer isAdmin; diff --git a/src/main/java/com/ai/da/mapper/primary/entity/EducationLibrary.java b/src/main/java/com/ai/da/mapper/primary/entity/EducationLibrary.java new file mode 100644 index 00000000..85a7d291 --- /dev/null +++ b/src/main/java/com/ai/da/mapper/primary/entity/EducationLibrary.java @@ -0,0 +1,18 @@ +package com.ai.da.mapper.primary.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data +@TableName("t_education_library") +public class EducationLibrary extends BaseEntity{ + + private Long educationId; + + private Long classId; + + // 元素开放的范围 部门 | 公司 + private String scope; + + private Long libraryId; +} diff --git a/src/main/java/com/ai/da/mapper/primary/entity/EnterpriseLibrary.java b/src/main/java/com/ai/da/mapper/primary/entity/EnterpriseLibrary.java new file mode 100644 index 00000000..085ee184 --- /dev/null +++ b/src/main/java/com/ai/da/mapper/primary/entity/EnterpriseLibrary.java @@ -0,0 +1,18 @@ +package com.ai.da.mapper.primary.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data +@TableName("t_enterprise_library") +public class EnterpriseLibrary extends BaseEntity{ + + private Long enterpriseId; + + private Long departmentId; + + // 元素开放的范围 部门 | 公司 + private String scope; + + private Long libraryId; +} diff --git a/src/main/java/com/ai/da/mapper/primary/entity/Organization.java b/src/main/java/com/ai/da/mapper/primary/entity/Organization.java new file mode 100644 index 00000000..54dd4af8 --- /dev/null +++ b/src/main/java/com/ai/da/mapper/primary/entity/Organization.java @@ -0,0 +1,23 @@ +package com.ai.da.mapper.primary.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +@TableName("t_organization") +public class Organization extends BaseEntity{ + // 企业、教育、部门、班级名 + private String name; + // 企业 || 教育 Enterprise || Education + private String type; + // 分类类型:root/department/grade等 + private String categoryType; + // 分类层级 + private String level; + // 父分类ID(自引用) + private Long parentId; + // 状态 + private Integer status; +} diff --git a/src/main/java/com/ai/da/mapper/primary/entity/Portfolio.java b/src/main/java/com/ai/da/mapper/primary/entity/Portfolio.java index dddec328..4aed5d5c 100644 --- a/src/main/java/com/ai/da/mapper/primary/entity/Portfolio.java +++ b/src/main/java/com/ai/da/mapper/primary/entity/Portfolio.java @@ -60,6 +60,12 @@ public class Portfolio implements Serializable { @ApiModelProperty(value = "作品集作者ID") private Long accountId; + // 学校/企业id + private Long organizationId; + + // 该条作品是否在该组织公开 默认不公开 0(1为公开) + private Integer isPublic; + @ApiModelProperty(value = "创建时间") private LocalDateTime createDate; diff --git a/src/main/java/com/ai/da/model/dto/QueryPortfolioPageDTO.java b/src/main/java/com/ai/da/model/dto/QueryPortfolioPageDTO.java index 87188e81..a6337e73 100644 --- a/src/main/java/com/ai/da/model/dto/QueryPortfolioPageDTO.java +++ b/src/main/java/com/ai/da/model/dto/QueryPortfolioPageDTO.java @@ -15,4 +15,6 @@ public class QueryPortfolioPageDTO extends PageQueryBaseVo { private Long accountId; private Long tagId; + + private Long organizationId; } diff --git a/src/main/java/com/ai/da/service/ConvenientInquiryService.java b/src/main/java/com/ai/da/service/ConvenientInquiryService.java index 64bf0e85..e7e66d0a 100644 --- a/src/main/java/com/ai/da/service/ConvenientInquiryService.java +++ b/src/main/java/com/ai/da/service/ConvenientInquiryService.java @@ -2,6 +2,7 @@ package com.ai.da.service; import com.ai.da.common.response.PageBaseResponse; import com.ai.da.mapper.primary.entity.Account; +import com.ai.da.mapper.primary.entity.Organization; import com.ai.da.mapper.primary.entity.Questionnaire; import com.ai.da.mapper.primary.entity.TrialOrder; import com.ai.da.model.dto.*; @@ -58,4 +59,8 @@ public interface ConvenientInquiryService extends IService { PageBaseResponse getGenerateFrequency(AccountCreditsUsageQueryDTO queryDTO); List getAllGenerateFuncName(); + + void addOrganization(String name, String type); + + List queryOrganization(String type); } diff --git a/src/main/java/com/ai/da/service/LibraryService.java b/src/main/java/com/ai/da/service/LibraryService.java index f6eb7169..428b24f0 100644 --- a/src/main/java/com/ai/da/service/LibraryService.java +++ b/src/main/java/com/ai/da/service/LibraryService.java @@ -90,4 +90,12 @@ public interface LibraryService extends IService { void moveLibraryDate() throws ParseException; Map addSysModelToLib(long sysModelId); + + boolean saveToOrganizationLibrary(Long libraryId); + + void deleteFromPublicLib(Long libraryId); + + PageBaseResponse getPublicLib(String order, long page, long size); + + PageBaseResponse getAllSubAccLib(String order, long page, long size); } diff --git a/src/main/java/com/ai/da/service/PortfolioService.java b/src/main/java/com/ai/da/service/PortfolioService.java index aef657cf..f26a4e43 100644 --- a/src/main/java/com/ai/da/service/PortfolioService.java +++ b/src/main/java/com/ai/da/service/PortfolioService.java @@ -62,4 +62,6 @@ public interface PortfolioService extends IService { List getFolloweeList(Long accountId); // List queryPortfolioByTag(String tagName, Long tagId); + + void setPortfolioToPublic(Long portfolioId); } diff --git a/src/main/java/com/ai/da/service/impl/ConvenientInquiryServiceImpl.java b/src/main/java/com/ai/da/service/impl/ConvenientInquiryServiceImpl.java index 747e5b62..4fb8121c 100644 --- a/src/main/java/com/ai/da/service/impl/ConvenientInquiryServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/ConvenientInquiryServiceImpl.java @@ -10,6 +10,7 @@ import com.ai.da.common.utils.CopyUtil; import com.ai.da.common.utils.DateUtil; import com.ai.da.mapper.primary.*; import com.ai.da.mapper.primary.entity.Account; +import com.ai.da.mapper.primary.entity.Organization; import com.ai.da.mapper.primary.entity.Questionnaire; import com.ai.da.mapper.primary.entity.TrialOrder; import com.ai.da.model.dto.*; @@ -160,11 +161,11 @@ public class ConvenientInquiryServiceImpl extends ServiceImpl(); } }else { - throw new BusinessException("Sorry, you don't have permission"); + throw new BusinessException("have.no.permission"); } } @@ -909,4 +910,26 @@ public class ConvenientInquiryServiceImpl extends ServiceImpl queryOrganization(String type){ + // 查询所有的组织名及id + switch (type){ + case "Enterprise": + case "Education": + return organizationMapper.selectList(new QueryWrapper().eq("type", type).eq("category_type", "root")); + default: + throw new BusinessException("Unknown type"); + } + } + } diff --git a/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java b/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java index 8b900cc5..8de84945 100644 --- a/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java @@ -48,6 +48,7 @@ import java.nio.file.Files; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; +import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.TimeUnit; @@ -80,6 +81,12 @@ public class LibraryServiceImpl extends ServiceImpl impl private GenerateService generateService; @Resource private MinioUtil minioUtil; + @Resource + private AccountMapper accountMapper; + @Resource + private EductionLibraryMapper eductionLibraryMapper; + @Resource + private EnterpriseLibraryMapper enterpriseLibraryMapper; @Value("${minio.bucketName.users}") private String users; @@ -879,4 +886,109 @@ public class LibraryServiceImpl extends ServiceImpl impl resp.put("url", minioUtil.getPreSignedUrl(library.getUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); return resp; } + + public boolean saveToOrganizationLibrary(Long libraryId){ + // 1、判断该用户是否属于某个组织 + Long accountId = UserContext.getUserHolder().getId(); + Account account = accountMapper.selectById(accountId); + if (Objects.nonNull(account.getOrganizationId())){ + // 2、添加元素信息到对应的住址表里 + switch(account.getSystemUser()){ + case 5: + case 6: + EnterpriseLibrary enterpriseLibrary = enterpriseLibraryMapper.selectOne(new QueryWrapper().eq("library_id", libraryId)); + if (Objects.nonNull(enterpriseLibrary)){ + throw new BusinessException("element.already.exists"); + } + // 存储到企业表 + enterpriseLibrary = new EnterpriseLibrary(); + enterpriseLibrary.setEnterpriseId(account.getOrganizationId()); + enterpriseLibrary.setLibraryId(libraryId); + enterpriseLibrary.setCreateTime(LocalDateTime.now()); + enterpriseLibraryMapper.insert(enterpriseLibrary); + log.info("企业用户添加元素到公共库"); + return true; + case 7: + case 8: + EducationLibrary educationLibrary = eductionLibraryMapper.selectOne(new QueryWrapper().eq("library_id", libraryId)); + if (Objects.nonNull(educationLibrary)){ + throw new BusinessException("element.already.exists"); + } + // 存储到教育表 + educationLibrary = new EducationLibrary(); + educationLibrary.setEducationId(account.getOrganizationId()); + educationLibrary.setLibraryId(libraryId); + educationLibrary.setCreateTime(LocalDateTime.now()); + eductionLibraryMapper.insert(educationLibrary); + log.info("教育版用户添加元素到公共库"); + return true; + default: + return false; + } + } + return false; + } + + // 删除公共库中的元素 + public void deleteFromPublicLib(Long libraryId){ + // 谁有权限删除公共库里的东西?1、元素所有者 2、管理员 + Long accountId = UserContext.getUserHolder().getId(); + Account account = accountMapper.selectById(accountId); + Library library = libraryMapper.selectById(libraryId); + + if (account.getSystemUser().equals(5) + || account.getSystemUser().equals(7) + || library.getAccountId().equals(accountId)){ + switch (account.getSystemUser()){ + case 5: + case 6: + enterpriseLibraryMapper.delete(new QueryWrapper().eq("library_id", libraryId)); + break; + case 7: + case 8: + eductionLibraryMapper.delete(new QueryWrapper().eq("library_id", libraryId)); + break; + } + }else { + throw new BusinessException("have.no.permission", ResultEnum.PROMPT.getCode()); + } + } + + + // 查询企业或教育的公共库 + public PageBaseResponse getPublicLib(String order, long page, long size){ + Long accountId = UserContext.getUserHolder().getId(); + Account account = accountMapper.selectById(accountId); + if (Objects.isNull(account.getOrganizationId())){ + throw new BusinessException("未查询到您的组织信息,无法获取公共库的元素", ResultEnum.PROMPT.getCode()); + } + Long organizationId = account.getOrganizationId(); + long offset = (page - 1) * size; + List libraries = libraryMapper.selectCommonLib(organizationId, order, size, offset); + Long count = libraryMapper.selectCommonLibCount(organizationId); + long pages = (long) Math.ceil(count / size); + return new PageBaseResponse<>(libraries, page, size, count, pages == 0 ? 1 : pages); + } + + // 管理员查所有子账号的library + public PageBaseResponse getAllSubAccLib(String order, long page, long size){ + // 1、判断当前账号是不是管理员 + Long accountId = UserContext.getUserHolder().getId(); + Account account = accountMapper.selectById(accountId); + long offset = (page - 1) * size; + switch(account.getSystemUser()){ + case 5: + case 7: + if (Objects.isNull(account.getOrganizationId())){ + throw new BusinessException("未查询到您的组织信息,无法获取元素", ResultEnum.PROMPT.getCode()); + } + List libraries = libraryMapper.selectAllSubAccLib(account.getOrganizationId(), order, size, offset); + Long count = libraryMapper.selectAllSubAccLibCount(account.getOrganizationId()); + long pages = (long) Math.ceil(count / size); + return new PageBaseResponse<>(libraries, page, size, count, pages == 0 ? 1 : pages); + default: + throw new BusinessException("have.no.permission", ResultEnum.PROMPT.getCode()); + } + } + } diff --git a/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java b/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java index ffb3a9cf..7d90a37a 100644 --- a/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java @@ -184,6 +184,12 @@ public class PortfolioServiceImpl extends ServiceImpl topThree = new ArrayList<>(); List excludeIds = new ArrayList<>(); // 存放需要排除的 ID 列表 // 获取前三点赞和前三浏览的作品集,并将其排除在分页查询之外 @@ -1184,4 +1196,24 @@ public class PortfolioServiceImpl extends ServiceImpl + + + + + + + + + + + diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index e9f5174d..5a331452 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -156,6 +156,8 @@ model.path.cannot.be.empty=Model path cannot be empty. this.promotion.code.has.expired=This promotion code has expired. this.promotion.code.is.invalid=This promotion code is invalid. one.time.limit.per.customer=This code has already been redeemed. Promo codes are limited to one-time use per customer. +element.already.exists=This element already exists in the public library +have.no.permission=Sorry, you don't have permission # 可能会报异常 # Informative: diff --git a/src/main/resources/messages_zh.properties b/src/main/resources/messages_zh.properties index 0ed76056..b9a272dd 100644 --- a/src/main/resources/messages_zh.properties +++ b/src/main/resources/messages_zh.properties @@ -152,6 +152,8 @@ model.path.cannot.be.empty=模特路径不能为空 this.promotion.code.has.expired=该促销码已过期。 this.promotion.code.is.invalid=该促销码无效。 one.time.limit.per.customer=该码已兑换。每个促销码每位用户仅限使用一次。 +element.already.exists=元素已存在于公共库中 +have.no.permission=您没有权限 # 可能会报异常 # Informative: