Commit 9da0d28a authored by Roger Wu's avatar Roger Wu

Merge branch 'release' of ssh://gitlab.gsstcloud.com:10022/poc/poc-api into release

parents af30a519 b24e3e65
......@@ -4,8 +4,14 @@ package cn.com.poc.agent_application.aggregate;
public interface AgentApplicationMallService {
/**
* 收藏/取消收藏应用广场中的应用
*
* */
*/
void collectOrCancelAgentInMall(Integer id) throws Exception;
/**
* 添加浏览量
*
* @param agentPublishId 应用广场发布id
*/
void addClickNumber(Integer agentPublishId) throws Exception;
}
package cn.com.poc.agent_application.aggregate.impl;
import cn.com.poc.agent_application.aggregate.AgentApplicationMallService;
import cn.com.poc.agent_application.convert.BizAgentApplicationMallConvert;
import cn.com.poc.agent_application.dto.BizAgentApplicationMallDto;
import cn.com.poc.agent_application.entity.BizAgentApplicationMallEntity;
import cn.com.poc.agent_application.entity.BizAgentApplicationPublishEntity;
import cn.com.poc.agent_application.entity.BizMemberAgentApplicationCollectEntity;
......@@ -85,4 +83,14 @@ public class AgentApplicationMallServiceImpl implements AgentApplicationMallServ
}
bizAgentApplicationMallService.update(mallEntity);
}
@Override
public void addClickNumber(Integer agentPublishId) throws Exception {
BizAgentApplicationMallEntity mallEntity = bizAgentApplicationMallService.getByAgentPublishId(agentPublishId);
if (mallEntity == null) {
return;
}
mallEntity.setClickNumber(mallEntity.getClickNumber() + 1);
bizAgentApplicationMallService.update(mallEntity);
}
}
......@@ -119,8 +119,8 @@ public class BizAgentApplicationMallConvert {
BizAgentApplicationPublishService agentApplicationPublishService = SpringUtils.getBean(BizAgentApplicationPublishServiceImpl.class);
BizAgentApplicationPublishEntity publishEntity = agentApplicationPublishService.get(item.getAgentPublishId());
AgentApplicationBaseInfo baseInfo = new AgentApplicationBaseInfo();
if (publishEntity != null) {
AgentApplicationBaseInfo baseInfo = new AgentApplicationBaseInfo();
baseInfo.setMemberId(publishEntity.getMemberId());
baseInfo.setAgentId(publishEntity.getAgentId());
baseInfo.setAgentTitle(publishEntity.getAgentTitle());
......@@ -129,10 +129,8 @@ public class BizAgentApplicationMallConvert {
baseInfo.setAgentSystem(publishEntity.getAgentSystem());
baseInfo.setAgentPublishStatus(publishEntity.getAgentPublishStatus());
baseInfo.setPublishTime(publishEntity.getPublishTime());
}
AgentApplicationCommConfig commConfig = new AgentApplicationCommConfig();
if (publishEntity != null) {
AgentApplicationCommConfig commConfig = new AgentApplicationCommConfig();
commConfig.setPreamble(publishEntity.getPreamble());
commConfig.setFeaturedQuestions(publishEntity.getFeaturedQuestions());
commConfig.setContinuousQuestionStatus(publishEntity.getContinuousQuestionStatus());
......@@ -140,32 +138,26 @@ public class BizAgentApplicationMallConvert {
commConfig.setContinuousQuestionTurn(publishEntity.getContinuousQuestionTurn());
commConfig.setVariableStructure(publishEntity.getVariableStructure());
commConfig.setIsLongMemory(publishEntity.getIsLongMemory());
}
AgentApplicationKnowledgeConfig knowledgeConfig = new AgentApplicationKnowledgeConfig();
if (publishEntity != null) {
AgentApplicationKnowledgeConfig knowledgeConfig = new AgentApplicationKnowledgeConfig();
knowledgeConfig.setKnowledgeIds(publishEntity.getKnowledgeIds());
}
AgentApplicationCommModelConfig commModelConfig = new AgentApplicationCommModelConfig();
if (publishEntity != null) {
AgentApplicationCommModelConfig commModelConfig = new AgentApplicationCommModelConfig();
commModelConfig.setLargeModel(publishEntity.getLargeModel());
commModelConfig.setTopP(publishEntity.getTopP());
commModelConfig.setCommunicationTurn(publishEntity.getCommunicationTurn());
dto.setUnitIds(publishEntity.getUnitIds());
dto.setBaseInfo(baseInfo);
dto.setCommConfig(commConfig);
dto.setKnowledgeConfig(knowledgeConfig);
dto.setCommModelConfig(commModelConfig);
}
dto.setId(item.getId());
dto.setAgentType(item.getAgentType());
dto.setCollectNumber(item.getCollectNumber());
dto.setClickNumber(item.getClickNumber());
dto.setBaseInfo(baseInfo);
dto.setCommConfig(commConfig);
dto.setKnowledgeConfig(knowledgeConfig);
dto.setCommModelConfig(commModelConfig);
if (publishEntity != null) {
dto.setUnitIds(publishEntity.getUnitIds());
}
dto.setIsCopy(item.getIsCopy());
dto.setIsSale(item.getIsSale());
dto.setPopularity(item.getPopularity());
......
select baap.member_id as member_id,
select distinct baap.member_id as member_id,
baap.agent_id as agent_id,
baap.agent_title as agent_title,
baap.agent_desc as agent_desc,
baap.agent_avatar as agent_avatar
from biz_member_agent_application_collect bmaac
left join biz_agent_application_publish baap on baap.agent_id = bmaac.agent_id and baap.is_deleted = 'N'
where bmaac.is_deleted = 'N' <<and bmaac.is_collect = :isCollect>>
left join biz_agent_application_publish baap on baap.agent_id = bmaac.agent_id
where baap.is_deleted = 'N'
and bmaac.is_deleted = 'N'
<<and bmaac.is_collect = :isCollect>>
<<and bmaac.member_id = :memberId>>
order by baap.created_time desc
\ No newline at end of file
......@@ -7,6 +7,7 @@ import cn.com.poc.agent_application.entity.*;
import cn.com.poc.agent_application.query.AgentApplicationInfoQueryCondition;
import cn.com.poc.agent_application.rest.AgentApplicationInfoRest;
import cn.com.poc.agent_application.service.*;
import cn.com.poc.common.annotation.RedisLimit;
import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.common.service.RedisService;
import cn.com.poc.common.utils.BlContext;
......@@ -347,6 +348,7 @@ public class AgentApplicationInfoRestImpl implements AgentApplicationInfoRest {
}
@Override
@RedisLimit(key = "collect:agent_person", currentUser = true, count = 1, timeout = 1, exceptionInfo = "exception/too.many.requests")
public void collectOrCancelAgentInPerson(String agentId) throws Exception {
Assert.notNull(agentId);
agentApplicationInfoService.collectOrCancelAgentInPerson(agentId);
......@@ -359,6 +361,9 @@ public class AgentApplicationInfoRestImpl implements AgentApplicationInfoRest {
if (MapUtils.isEmpty(map)) {
BizAgentApplicationInfoEntity infoEntity = bizAgentApplicationInfoService.getByAgentId(agentId);
List<Variable> variableStructure = infoEntity.getVariableStructure();
if (CollectionUtils.isEmpty(variableStructure)) {
return result;
}
for (Variable variable : variableStructure) {
AgentApplicationValueMemoryDto valueMemoryDto = new AgentApplicationValueMemoryDto();
valueMemoryDto.setKey(variable.getKey());
......
......@@ -11,13 +11,17 @@ import cn.com.poc.agent_application.entity.BizAgentApplicationPublishEntity;
import cn.com.poc.agent_application.entity.BizMemberAgentApplicationCollectEntity;
import cn.com.poc.agent_application.query.MallAgentApplicationQueryCondition;
import cn.com.poc.agent_application.query.MallAgentApplicationQueryItem;
import cn.com.poc.agent_application.query.MemberCollectQueryCondition;
import cn.com.poc.agent_application.query.MemberCollectQueryItem;
import cn.com.poc.agent_application.rest.BizAgentApplicationMallRest;
import cn.com.poc.agent_application.service.BizAgentApplicationCategoryService;
import cn.com.poc.agent_application.service.BizAgentApplicationMallService;
import cn.com.poc.agent_application.service.BizAgentApplicationPublishService;
import cn.com.poc.agent_application.service.BizMemberAgentApplicationCollectService;
import cn.com.poc.common.annotation.RedisLimit;
import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.common.constant.XLangConstant;
import cn.com.poc.common.utils.BlContext;
import cn.com.poc.common.utils.StringUtils;
import cn.com.yict.framemax.core.i18n.I18nMessageException;
import cn.com.yict.framemax.data.model.PagingInfo;
......@@ -28,6 +32,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
@Component
public class BizAgentApplicationMallRestImpl implements BizAgentApplicationMallRest {
......@@ -111,20 +116,18 @@ public class BizAgentApplicationMallRestImpl implements BizAgentApplicationMallR
}
}
List<MallAgentApplicationQueryItem> items = bizAgentApplicationMallService.mallAgentApplicationQuery(mallAgentApplicationQueryCondition, pagingInfo);
MemberCollectQueryCondition collectQueryCondition = new MemberCollectQueryCondition();
collectQueryCondition.setMemberId(BlContext.getCurrentUserNotException().getUserId());
collectQueryCondition.setIsCollect(CommonConstant.YOrN.Y);
List<MemberCollectQueryItem> memberCollectQueryItems = bizMemberAgentApplicationCollectService.queryMemberCollect(collectQueryCondition, null);
for (MallAgentApplicationQueryItem item : items) {
BizAgentApplicationMallDto mallDto = BizAgentApplicationMallConvert.itemToDto(item);
// 如果应用上架了
if (CommonConstant.IsDeleted.Y.equals(mallDto.getIsSale())) {
if (mallDto.getBaseInfo() != null && CommonConstant.YOrN.Y.equals(mallDto.getIsSale())) {
// 设置当前用户是否收藏了
if (mallDto.getBaseInfo() != null) {
BizMemberAgentApplicationCollectEntity collect = bizMemberAgentApplicationCollectService.getByAgentId(mallDto.getBaseInfo().getAgentId());
if (collect != null) {
mallDto.setIsCollect(collect.getIsCollect());
} else {
mallDto.setIsCollect(CommonConstant.IsDeleted.N);
}
}
String agentId = mallDto.getBaseInfo().getAgentId();
mallDto.setIsCollect(memberCollectQueryItems.stream().anyMatch(v -> agentId.equals(v.getAgentId())) ? CommonConstant.YOrN.Y : CommonConstant.YOrN.N);
resultList.add(mallDto);
}
}
......@@ -143,6 +146,7 @@ public class BizAgentApplicationMallRestImpl implements BizAgentApplicationMallR
}
@Override
@RedisLimit(currentUser = true, key = "collect:agent", count = 1, timeout = 1, exceptionInfo = "exception/collect.limit.message")
public void collectOrCancelAgentInMall(Integer id) throws Exception {
Assert.notNull(id);
agentApplicationMallService.collectOrCancelAgentInMall(id);
......
......@@ -109,6 +109,9 @@ public class BizAgentApplicationMallServiceImpl extends BaseServiceImpl
if (entity.getIsSale() != null) {
model.setIsSale(entity.getIsSale());
}
if (entity.getCategoryId() != null) {
model.setCategoryId(entity.getCategoryId());
}
if (entity.getPopularity() != null) {
model.setPopularity(entity.getPopularity());
}
......
package cn.com.poc.common.annotation;
import org.springframework.stereotype.Component;
import java.lang.annotation.*;
/**
* @author Ken
*/
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface CurrentUserRolePermission {
String[] permissionCodeArr();
String prompt() default "无权限,请联系管理员";
}
package cn.com.poc.common.annotation;
import org.springframework.stereotype.Component;
import java.lang.annotation.*;
/**
* 限流
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Component
@Documented
public @interface RedisLimit {
/**
* 限流key
*/
String key();
/**
* 限流数量 [单位时间内次数]
*/
int count();
/**
* 限流时间 默认60秒
*/
long timeout() default 60;
/**
* 限流时间单位 [默认秒]
*/
LimitTimeUnit timeUnit() default LimitTimeUnit.SECONDS;
/**
* 是否针对当前用户
*
* @return
*/
boolean currentUser() default false;
/**
* 异常信息
*/
String exceptionInfo() default "";
enum LimitTimeUnit {
/**
* 秒
*/
SECONDS,
/**
* 分钟
*/
MINUTES,
/**
* 小时
*/
HOURS,
/**
* 天
*/
DAYS,
/**
* 当日
*/
DAY_OF_MONTH,
/**
* 当月
*/
MONTH_OF_YEAR;
LimitTimeUnit(){}
}
}
package cn.com.poc.common.aspect;
import cn.com.poc.common.annotation.RedisLimit;
import cn.com.poc.common.utils.BlContext;
import cn.com.poc.common.utils.DateUtils;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
import cn.com.yict.framemax.core.exception.BusinessException;
import cn.com.yict.framemax.core.i18n.I18nMessageException;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.lang.reflect.Method;
import java.util.Date;
import java.util.concurrent.TimeUnit;
/**
* 限流切面
*/
@Aspect
@Component
public class RedisLimitAspect {
private final Logger logger = LoggerFactory.getLogger(RedisLimitAspect.class);
@Resource
private RedisTemplate<String, Integer> redisTemplate;
@Pointcut("@annotation( cn.com.poc.common.annotation.RedisLimit)")
public void redisLimitAnnotation() {
}
@Around(value = "redisLimitAnnotation()")
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
Method method = ((MethodSignature) joinPoint.getSignature()).getMethod();
RedisLimit annotation = method.getAnnotation(RedisLimit.class);
StringBuilder redisKey = new StringBuilder();
String key = annotation.key();
redisKey.append("Limit_");
redisKey.append(key);
redisKey.append(":");
if (annotation.currentUser()) {
UserBaseEntity currentUser = BlContext.getCurrentUserNotException();
redisKey.append(currentUser.getUserId());
}
if (Boolean.FALSE.equals(redisTemplate.hasKey(redisKey.toString()))) {
redisTemplate.opsForValue().increment(redisKey.toString(), 1);
redisTemplate.expire(redisKey.toString(), expireTime(annotation.timeout(), annotation.timeUnit()), TimeUnit.MILLISECONDS);
} else if (redisTemplate.opsForValue().get(redisKey.toString()).intValue() >= annotation.count()) {
throw new I18nMessageException(annotation.exceptionInfo());
} else {
redisTemplate.opsForValue().increment(redisKey.toString(), 1);
}
return joinPoint.proceed();
}
private Long expireTime(Long timeout, RedisLimit.LimitTimeUnit limitTimeUnit) {
switch (limitTimeUnit) {
case SECONDS:
return timeout * 1000;
case MINUTES:
return timeout * 60 * 1000;
case HOURS:
return timeout * 60 * 60 * 1000;
case DAYS:
Date date = new Date();
return DateUtils.diffTwoDate(DateUtils.addDays(date, timeout.intValue()), date);
case DAY_OF_MONTH:
Date dayBegin = DateUtils.getDayBegin(DateUtils.addDays(DateUtils.getToday(), timeout.intValue()));
return DateUtils.diffTwoDate(dayBegin, DateUtils.getToday());
case MONTH_OF_YEAR:
Date monthBegin = DateUtils.getMonthBegin(DateUtils.getMonthAfter(DateUtils.getToday(), timeout.intValue()));
return DateUtils.diffTwoDate(monthBegin, DateUtils.getToday());
default:
throw new BusinessException("不支持的单位");
}
}
}
......@@ -130,7 +130,7 @@ public class AgentApplicationServiceImpl implements AgentApplicationService {
outputRecord.setTimestamp(System.currentTimeMillis());
//对话
String output = agentApplicationInfoService.callAgentApplication(dialogsId, infoEntity.getLargeModel(),
String output = agentApplicationInfoService.callAgentApplication(dialogsId, infoEntity.getLargeModel(),
infoEntity.getUnitIds(), infoEntity.getAgentSystem(), kdIdList.toArray(new Integer[0]), infoEntity.getCommunicationTurn(),
infoEntity.getTopP(), infoEntity.getTemperature(), messages, tools, httpServletResponse);
......
......@@ -31,7 +31,7 @@ public interface AgentApplicationRest extends BaseRest {
/**
* 创建对话
*/
String createDialogues() throws Exception;
String createDialogues(@RequestParam(required = false) String agentId) throws Exception;
/**
* 调用 已发布Agent应用
......
package cn.com.poc.expose.rest.impl;
import cn.com.poc.agent_application.aggregate.AgentApplicationInfoService;
import cn.com.poc.agent_application.aggregate.AgentApplicationMallService;
import cn.com.poc.agent_application.convert.AgentApplicationInfoConvert;
import cn.com.poc.agent_application.convert.BizAgentApplicationPublishConvert;
import cn.com.poc.agent_application.dto.AgentApplicationCreateContinueQuesDto;
......@@ -19,10 +20,14 @@ import cn.com.poc.common.utils.UUIDTool;
import cn.com.poc.expose.aggregate.AgentApplicationService;
import cn.com.poc.expose.dto.*;
import cn.com.poc.expose.rest.AgentApplicationRest;
import cn.com.poc.message.entity.AgentApplicationClickEventMessage;
import cn.com.poc.message.service.AgentApplicationProducerService;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
import cn.com.yict.framemax.core.i18n.I18nMessageException;
import cn.com.yict.framemax.data.model.PagingInfo;
import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
......@@ -37,6 +42,7 @@ import java.util.stream.Collectors;
@Component
public class AgentApplicationRestImpl implements AgentApplicationRest {
private Logger logger = LoggerFactory.getLogger(AgentApplicationRest.class);
@Resource
private AgentApplicationService agentApplicationService;
......@@ -50,6 +56,9 @@ public class AgentApplicationRestImpl implements AgentApplicationRest {
@Resource
private BizAgentApplicationDialoguesRecordService bizAgentApplicationDialoguesRecordService;
@Resource
private AgentApplicationProducerService agentApplicationProducerService;
@Override
public List<String> getRecommendQuestions(HttpServletRequest httpServletRequest) throws Exception {
return agentApplicationService.getRecommendQuestions(httpServletRequest.getHeader("x-lang"));
......@@ -78,7 +87,12 @@ public class AgentApplicationRestImpl implements AgentApplicationRest {
}
@Override
public String createDialogues() {
public String createDialogues(String agentId) {
if (StringUtils.isNotBlank(agentId)) {
AgentApplicationClickEventMessage agentApplicationClickEventMessage = new AgentApplicationClickEventMessage();
agentApplicationClickEventMessage.setAgentId(agentId);
agentApplicationProducerService.clickEvent(agentApplicationClickEventMessage);
}
return "DIA_" + UUIDTool.getUUID();
}
......
package cn.com.poc.message.entity;
import java.io.Serializable;
public class AgentApplicationClickEventMessage implements Serializable {
private String agentId;
public String getAgentId() {
return agentId;
}
public void setAgentId(String agentId) {
this.agentId = agentId;
}
}
package cn.com.poc.message.service;
import cn.com.poc.message.entity.AgentApplicationClickEventMessage;
import cn.com.yict.framemax.core.service.BaseService;
public interface AgentApplicationConsumerService extends BaseService {
void clickEvent(AgentApplicationClickEventMessage message) throws Exception;
}
package cn.com.poc.message.service;
import cn.com.poc.message.entity.AgentApplicationClickEventMessage;
import cn.com.yict.framemax.core.service.BaseService;
public interface AgentApplicationProducerService extends BaseService {
AgentApplicationClickEventMessage clickEvent(AgentApplicationClickEventMessage message);
}
package cn.com.poc.message.service.impl;
import cn.com.poc.agent_application.aggregate.AgentApplicationMallService;
import cn.com.poc.agent_application.entity.BizAgentApplicationPublishEntity;
import cn.com.poc.agent_application.service.BizAgentApplicationDialoguesRecordService;
import cn.com.poc.agent_application.service.BizAgentApplicationPublishService;
import cn.com.poc.message.entity.AgentApplicationClickEventMessage;
import cn.com.poc.message.service.AgentApplicationConsumerService;
import cn.com.poc.message.topic.AgentApplicationTopic;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.yict.framemax.tumbleweed.client.annotation.Consumer;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class AgentApplicationConsumerServiceImpl implements AgentApplicationConsumerService {
@Resource
private BizAgentApplicationPublishService bizAgentApplicationPublishService;
@Resource
private AgentApplicationMallService agentApplicationMallService;
@Override
@Consumer(topic = AgentApplicationTopic.AGENT_APPLICATION_CLICK_EVENT, retry = true)
public void clickEvent(AgentApplicationClickEventMessage message) throws Exception {
BizAgentApplicationPublishEntity agentApplicationPublishEntity = bizAgentApplicationPublishService.getByAgentId(message.getAgentId());
if (agentApplicationPublishEntity != null) {
Integer publishId = agentApplicationPublishEntity.getId();
agentApplicationMallService.addClickNumber(publishId);
}
}
}
package cn.com.poc.message.service.impl;
import cn.com.poc.message.entity.AgentApplicationClickEventMessage;
import cn.com.poc.message.service.AgentApplicationProducerService;
import cn.com.poc.message.topic.AgentApplicationTopic;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.yict.framemax.tumbleweed.client.annotation.Producer;
import org.springframework.stereotype.Service;
@Service
public class AgentApplicationProducerServiceImpl implements AgentApplicationProducerService {
@Override
@Producer(topic = AgentApplicationTopic.AGENT_APPLICATION_CLICK_EVENT)
public AgentApplicationClickEventMessage clickEvent(AgentApplicationClickEventMessage message) {
return message;
}
}
package cn.com.poc.message.topic;
public interface AgentApplicationTopic {
/**
* Agent application click event.
*/
String AGENT_APPLICATION_CLICK_EVENT = "agent_application_click_event";
}
......@@ -2,6 +2,8 @@ package cn.com.poc.user.dto;
import cn.com.yict.framemax.data.model.BaseModelClass;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.util.Date;
......
......@@ -8,7 +8,9 @@ import cn.com.poc.user.dto.MemberPasswordRequestDto;
import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.yict.framemax.web.permission.Access;
import cn.com.yict.framemax.web.permission.Permission;
import org.springframework.security.core.parameters.P;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@Permission(Access.Safety)
public interface BizMemberInfoRest extends BaseRest {
......@@ -41,4 +43,10 @@ public interface BizMemberInfoRest extends BaseRest {
* @return
*/
MemberInfoDto getCurrentMemberInfo() throws Exception;
/**
* 获取用户昵称
*/
@Permission(Access.Anonymous)
MemberInfoDto getMemberNickName(@RequestParam Long memberId) throws Exception;
}
\ No newline at end of file
......@@ -14,6 +14,7 @@ import cn.com.poc.user.aggregation.MemberInfoService;
import cn.com.poc.user.builder.LoginChannelBuilder;
import cn.com.poc.user.entity.MemberInfoEntity;
import cn.com.poc.user.service.BizMemberInfoService;
import cn.com.yict.framemax.core.i18n.I18nMessageException;
import cn.com.yict.framemax.security.oauth.OauthAccesstokenManager;
import cn.com.yict.framemax.security.oauth.entity.OauthResultEntity;
import org.springframework.stereotype.Component;
......@@ -111,4 +112,16 @@ public class BizMemberInfoRestImpl implements BizMemberInfoRest {
return MemberInfoConvert.converEntity2Dto(memberInfoEntity);
}
@Override
public MemberInfoDto getMemberNickName(Long memberId) throws Exception {
MemberInfoEntity memberInfoEntity = bizMemberInfoService.getById(memberId.intValue());
if (memberInfoEntity == null) {
throw new I18nMessageException("exception/user.does.not.exist");
}
MemberInfoDto memberInfoDto = new MemberInfoDto();
memberInfoDto.setNickName(memberInfoEntity.getNickName());
memberInfoDto.setAvatarUrl(memberInfoEntity.getAvatarUrl());
return memberInfoDto;
}
}
\ No newline at end of file
......@@ -58,7 +58,7 @@ failed.to.obtain.token=Failed to obtain token
re-verify.the.user.identity=Please re verify the user's identity
user.cannot.be.found=The user cannot be found
verification.code.is.incorrect.please.re-enter=The verification code is incorrect, please re-enter
user.does.not.exist=The login user does not exist
user.does.not.exist=User does not exist
password.error.please.re-enter=Password error, please re-enter
unable.find.user.association.relationship=Unable to find user's association relationship
account.has.already=This account has already been registered, please replace it
......@@ -67,4 +67,5 @@ call.failure=Call failure
model.not.exist=Model not exist
upload.more.than.10m=The uploaded file cannot exceed 10M file name
error.file.content.is.null=Incorrect file, file contents cannot be empty, file name
file.content.more.than.100w=The number of characters in a file cannot exceed 100w
\ No newline at end of file
file.content.more.than.100w=The number of characters in a file cannot exceed 100w
collect.limit.message=Click too fast, do not repeat the operation
\ No newline at end of file
publication.failed=发布失败
create.[role.instruction].configuration.does.not.exist=创建[角色指令]配置不存在
create.[opening.statement].configuration.does.not.exist=创建[开场白]配置不存在
failed.to.create.[opening.statement]=创建[开场白]失败
the.configuration.for.creating.[avatar.prompt].does.not.exist.please.contact.the.administrator=创建[头像提示语]配置不存在,请联系管理员
failed.to.create.[avatar].please.try.again.later=创建[头像]失败,请稍后再试
create.[application.information].configuration.does.not.exist.please.contact.the.administrator=创建[应用信息]配置不存在,请联系管理员
failed.to.create.[application.information].please.try.again.later=创建[应用信息]失败,请稍后再试
user.not.login=用户未登录
application.does.not.exist=应用不存在
application.not.released=应用未发布
generation.failed.please.try.again.later=生成失败,请稍后重试
data.does.not.exist=数据不存在
there.are.too.many.tasks.currently.please.try.again.later=当前任务过多,请稍后重试
verification.code.has.expired.please.obtain.it.again=验证码已过期,请重新获取
maximum.number.of.verifications.has.been.reached=验证次数已达上限
verification.code.sending.failed.please.try.again=验证码发送失败!请重试
upload.exception.please.check.the.file.before.uploading.again=上传异常,请检查文件后再上传
abnormal.call.to.upload.alibaba.cloud.images=调用上传阿里云图片异常!
cannot.read.data.from.this.url=不能从该url中读取到数据
error.signature=错误的签名
signature.validity.time.exception=签名有效时间异常
signature.has.expired=签名已过期
app.not.found=未找到应用
failed.to.generate.recommendation.question=生成推荐问题失败
document.does.not.exist=文档不存在
knowledge.base.information.does.not.exist=知识库信息不存在
repetitive.training.in.the.knowledge.base=知识库重复训练
knowledge.base.does.not.exist=知识库不存在
private.key.of.the.marketing.platform.configuration.project.is.empty=营销中台配置项目私钥为空
decryption.offset.of.the.marketing.platform.configuration.is.empty=营销中台配置解密偏移量为空
middle.server.is.unresponsive.or.has.timed.out=中台服务器无响应或响应超时!
key.for.the.marketing.platform.configuration.project.is.empty=营销中台配置项目key为空
secret.for.the.marketing.platform.configuration.project.is.empty=营销中台配置项目密钥为空
failed.to.obtain.xinghai.apptoken=获取兴海apptoken失败
default.login.channel.login.is.currently.not.supported=暂不支持默认登录渠道登录!
third.party.authorization.channel.abnormal=第三方授权渠道异常!
third.party.login.channel.abnormality=第三方登录渠道异常
abnormal.configuration.of.bai.liantong.open.platform=百联通开放平台配置异常!
abnormal.acquisition.of.mini.program.information.please.check.if.the.configuration.is.correct=获取小程序信息异常!请检查配置是否正确!
currently.no.default.registration.channel.for.login=暂无默认注册渠道登录!
abnormal.registration.channel=注册渠道异常
login.expiration.time.configured.as.empty=登录过期时间配置为空!
there.is.currently.no.default.verification.code.channel.login=暂无默认验证码渠道登录!
verification.code.channel.abnormality=验证码渠道异常
failed.to.obtain.baidu.token=获取百度token失败
training.exception.please.contact.the.administrator=翻译异常,请联系管理员
image.generation.failed=生成图片失败
middle.platform.is.unresponsive=中台无响应,请联系开发人员
no.response.please.contact.the.developer=无响应,请联系开发人员
abnormal.knowledge.base.training=知识库训练异常
abnormal.training.status.of.knowledge.base.acquisition=获取知识库训练状态异常
delete.knowledge.base.exception=删除知识库异常
query.knowledge.base.exception=查询知识库异常
variable.structure.configuration.is.not.currently.supported=暂不支持变量结构配置
this.method.is.not.supported=不支持此方法
failed.to.obtain.token=获取token失败
re-verify.the.user.identity=请重新验证用户身份
user.cannot.be.found=找不到该用户
verification.code.is.incorrect.please.re-enter=验证码有误,请重新输入
user.does.not.exist=登录的用户不存在
password.error.please.re-enter=密码错误,请重新输入
unable.find.user.association.relationship=找不到用户的关联关系
account.has.already=该账号已经被注册,请更换一个
not.support.lang=不支持该语音
call.failure=调用失败
model.not.exist=模型不存在
upload.more.than.10m=上传的文件不能超过10M,文件名
error.file.content.is.null=错误的文件,文件内容不能为空,文件名
file.content.more.than.100w=文件内容字符数不能超过100w,文件名
\ No newline at end of file
publication.failed=\u53D1\u5E03\u5931\u8D25
create.[role.instruction].configuration.does.not.exist=\u521B\u5EFA[\u89D2\u8272\u6307\u4EE4]\u914D\u7F6E\u4E0D\u5B58\u5728
create.[opening.statement].configuration.does.not.exist=\u521B\u5EFA[\u5F00\u573A\u767D]\u914D\u7F6E\u4E0D\u5B58\u5728
failed.to.create.[opening.statement]=\u521B\u5EFA[\u5F00\u573A\u767D]\u5931\u8D25
the.configuration.for.creating.[avatar.prompt].does.not.exist.please.contact.the.administrator=\u521B\u5EFA[\u5934\u50CF\u63D0\u793A\u8BED]\u914D\u7F6E\u4E0D\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458
failed.to.create.[avatar].please.try.again.later=\u521B\u5EFA[\u5934\u50CF]\u5931\u8D25,\u8BF7\u7A0D\u540E\u518D\u8BD5
create.[application.information].configuration.does.not.exist.please.contact.the.administrator=\u521B\u5EFA[\u5E94\u7528\u4FE1\u606F]\u914D\u7F6E\u4E0D\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458
failed.to.create.[application.information].please.try.again.later=\u521B\u5EFA[\u5E94\u7528\u4FE1\u606F]\u5931\u8D25,\u8BF7\u7A0D\u540E\u518D\u8BD5
user.not.login=\u7528\u6237\u672A\u767B\u5F55
application.does.not.exist=\u5E94\u7528\u4E0D\u5B58\u5728
application.not.released=\u5E94\u7528\u672A\u53D1\u5E03
generation.failed.please.try.again.later=\u751F\u6210\u5931\u8D25,\u8BF7\u7A0D\u540E\u91CD\u8BD5
data.does.not.exist=\u6570\u636E\u4E0D\u5B58\u5728
there.are.too.many.tasks.currently.please.try.again.later=\u5F53\u524D\u4EFB\u52A1\u8FC7\u591A\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5
verification.code.has.expired.please.obtain.it.again=\u9A8C\u8BC1\u7801\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u83B7\u53D6
maximum.number.of.verifications.has.been.reached=\u9A8C\u8BC1\u6B21\u6570\u5DF2\u8FBE\u4E0A\u9650
verification.code.sending.failed.please.try.again=\u9A8C\u8BC1\u7801\u53D1\u9001\u5931\u8D25\uFF01\u8BF7\u91CD\u8BD5
upload.exception.please.check.the.file.before.uploading.again=\u4E0A\u4F20\u5F02\u5E38,\u8BF7\u68C0\u67E5\u6587\u4EF6\u540E\u518D\u4E0A\u4F20
abnormal.call.to.upload.alibaba.cloud.images=\u8C03\u7528\u4E0A\u4F20\u963F\u91CC\u4E91\u56FE\u7247\u5F02\u5E38\uFF01
cannot.read.data.from.this.url=\u4E0D\u80FD\u4ECE\u8BE5url\u4E2D\u8BFB\u53D6\u5230\u6570\u636E
error.signature=\u9519\u8BEF\u7684\u7B7E\u540D
signature.validity.time.exception=\u7B7E\u540D\u6709\u6548\u65F6\u95F4\u5F02\u5E38
signature.has.expired=\u7B7E\u540D\u5DF2\u8FC7\u671F
app.not.found=\u672A\u627E\u5230\u5E94\u7528
failed.to.generate.recommendation.question=\u751F\u6210\u63A8\u8350\u95EE\u9898\u5931\u8D25
document.does.not.exist=\u6587\u6863\u4E0D\u5B58\u5728
knowledge.base.information.does.not.exist=\u77E5\u8BC6\u5E93\u4FE1\u606F\u4E0D\u5B58\u5728
repetitive.training.in.the.knowledge.base=\u77E5\u8BC6\u5E93\u91CD\u590D\u8BAD\u7EC3
knowledge.base.does.not.exist=\u77E5\u8BC6\u5E93\u4E0D\u5B58\u5728
private.key.of.the.marketing.platform.configuration.project.is.empty=\u8425\u9500\u4E2D\u53F0\u914D\u7F6E\u9879\u76EE\u79C1\u94A5\u4E3A\u7A7A
decryption.offset.of.the.marketing.platform.configuration.is.empty=\u8425\u9500\u4E2D\u53F0\u914D\u7F6E\u89E3\u5BC6\u504F\u79FB\u91CF\u4E3A\u7A7A
middle.server.is.unresponsive.or.has.timed.out=\u4E2D\u53F0\u670D\u52A1\u5668\u65E0\u54CD\u5E94\u6216\u54CD\u5E94\u8D85\u65F6\uFF01
key.for.the.marketing.platform.configuration.project.is.empty=\u8425\u9500\u4E2D\u53F0\u914D\u7F6E\u9879\u76EEkey\u4E3A\u7A7A
secret.for.the.marketing.platform.configuration.project.is.empty=\u8425\u9500\u4E2D\u53F0\u914D\u7F6E\u9879\u76EE\u5BC6\u94A5\u4E3A\u7A7A
failed.to.obtain.xinghai.apptoken=\u83B7\u53D6\u5174\u6D77apptoken\u5931\u8D25
default.login.channel.login.is.currently.not.supported=\u6682\u4E0D\u652F\u6301\u9ED8\u8BA4\u767B\u5F55\u6E20\u9053\u767B\u5F55\uFF01
third.party.authorization.channel.abnormal=\u7B2C\u4E09\u65B9\u6388\u6743\u6E20\u9053\u5F02\u5E38!
third.party.login.channel.abnormality=\u7B2C\u4E09\u65B9\u767B\u5F55\u6E20\u9053\u5F02\u5E38
abnormal.configuration.of.bai.liantong.open.platform=\u767E\u8054\u901A\u5F00\u653E\u5E73\u53F0\u914D\u7F6E\u5F02\u5E38\uFF01
abnormal.acquisition.of.mini.program.information.please.check.if.the.configuration.is.correct=\u83B7\u53D6\u5C0F\u7A0B\u5E8F\u4FE1\u606F\u5F02\u5E38\uFF01\u8BF7\u68C0\u67E5\u914D\u7F6E\u662F\u5426\u6B63\u786E\uFF01
currently.no.default.registration.channel.for.login=\u6682\u65E0\u9ED8\u8BA4\u6CE8\u518C\u6E20\u9053\u767B\u5F55\uFF01
abnormal.registration.channel=\u6CE8\u518C\u6E20\u9053\u5F02\u5E38
login.expiration.time.configured.as.empty=\u767B\u5F55\u8FC7\u671F\u65F6\u95F4\u914D\u7F6E\u4E3A\u7A7A!
there.is.currently.no.default.verification.code.channel.login=\u6682\u65E0\u9ED8\u8BA4\u9A8C\u8BC1\u7801\u6E20\u9053\u767B\u5F55\uFF01
verification.code.channel.abnormality=\u9A8C\u8BC1\u7801\u6E20\u9053\u5F02\u5E38
failed.to.obtain.baidu.token=\u83B7\u53D6\u767E\u5EA6token\u5931\u8D25
training.exception.please.contact.the.administrator=\u7FFB\u8BD1\u5F02\u5E38,\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458
image.generation.failed=\u751F\u6210\u56FE\u7247\u5931\u8D25
middle.platform.is.unresponsive=\u4E2D\u53F0\u65E0\u54CD\u5E94\uFF0C\u8BF7\u8054\u7CFB\u5F00\u53D1\u4EBA\u5458
no.response.please.contact.the.developer=\u65E0\u54CD\u5E94\uFF0C\u8BF7\u8054\u7CFB\u5F00\u53D1\u4EBA\u5458
abnormal.knowledge.base.training=\u77E5\u8BC6\u5E93\u8BAD\u7EC3\u5F02\u5E38
abnormal.training.status.of.knowledge.base.acquisition=\u83B7\u53D6\u77E5\u8BC6\u5E93\u8BAD\u7EC3\u72B6\u6001\u5F02\u5E38
delete.knowledge.base.exception=\u5220\u9664\u77E5\u8BC6\u5E93\u5F02\u5E38
query.knowledge.base.exception=\u67E5\u8BE2\u77E5\u8BC6\u5E93\u5F02\u5E38
variable.structure.configuration.is.not.currently.supported=\u6682\u4E0D\u652F\u6301\u53D8\u91CF\u7ED3\u6784\u914D\u7F6E
this.method.is.not.supported=\u4E0D\u652F\u6301\u6B64\u65B9\u6CD5
failed.to.obtain.token=\u83B7\u53D6token\u5931\u8D25
re-verify.the.user.identity=\u8BF7\u91CD\u65B0\u9A8C\u8BC1\u7528\u6237\u8EAB\u4EFD
user.cannot.be.found=\u627E\u4E0D\u5230\u8BE5\u7528\u6237
verification.code.is.incorrect.please.re-enter=\u9A8C\u8BC1\u7801\u6709\u8BEF\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165
user.does.not.exist=\u7528\u6237\u4E0D\u5B58\u5728
password.error.please.re-enter=\u5BC6\u7801\u9519\u8BEF,\u8BF7\u91CD\u65B0\u8F93\u5165
unable.find.user.association.relationship=\u627E\u4E0D\u5230\u7528\u6237\u7684\u5173\u8054\u5173\u7CFB
account.has.already=\u8BE5\u8D26\u53F7\u5DF2\u7ECF\u88AB\u6CE8\u518C\uFF0C\u8BF7\u66F4\u6362\u4E00\u4E2A
not.support.lang=\u4E0D\u652F\u6301\u8BE5\u8BED\u97F3
call.failure=\u8C03\u7528\u5931\u8D25
model.not.exist=\u6A21\u578B\u4E0D\u5B58\u5728
upload.more.than.10m=\u4E0A\u4F20\u7684\u6587\u4EF6\u4E0D\u80FD\u8D85\u8FC710M,\u6587\u4EF6\u540D
error.file.content.is.null=\u9519\u8BEF\u7684\u6587\u4EF6\uFF0C\u6587\u4EF6\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A,\u6587\u4EF6\u540D
file.content.more.than.100w=\u6587\u4EF6\u5185\u5BB9\u5B57\u7B26\u6570\u4E0D\u80FD\u8D85\u8FC7100w,\u6587\u4EF6\u540D
collect.limit.message=\u70B9\u51FB\u8FC7\u5FEB,\u8BF7\u52FF\u91CD\u590D\u64CD\u4F5C
\ No newline at end of file
publication.failed=發佈失敗
create.[role.instruction].configuration.does.not.exist=創建[角色指令]配置不存在
create.[opening.statement].configuration.does.not.exist=創建[開場白]配置不存在
failed.to.create.[opening.statement]=創建[開場白]失敗
the.configuration.for.creating.[avatar.prompt].does.not.exist.please.contact.the.administrator=創建[頭像提示語]配置不存在,請聯繫管理員
failed.to.create.[avatar].please.try.again.later=創建[頭像]失敗,請稍後再試
create.[application.information].configuration.does.not.exist.please.contact.the.administrator=創建[應用信息]配置不存在,請聯繫管理員
failed.to.create.[application.information].please.try.again.later=創建[應用信息]失敗,請稍後再試
user.not.login=用戶未登錄
application.does.not.exist=應用不存在
application.not.released=應用未發佈
generation.failed.please.try.again.later=生成失敗,請稍後重試
data.does.not.exist=數據不存在
there.are.too.many.tasks.currently.please.try.again.later=當前任務過多,請稍後重試
verification.code.has.expired.please.obtain.it.again=驗證碼已過期,請重新獲取
maximum.number.of.verifications.has.been.reached=驗證次數已達上限
verification.code.sending.failed.please.try.again=驗證碼發送失敗!請重試
upload.exception.please.check.the.file.before.uploading.again=上傳異常,請檢查文件後再上傳
abnormal.call.to.upload.alibaba.cloud.images=調用上傳阿里雲圖片異常!
cannot.read.data.from.this.url=不能從該url中讀取到數據
error.signature=錯誤的簽名
signature.validity.time.exception=簽名有效時間異常
signature.has.expired=簽名已過期
app.not.found=未找到應用
failed.to.generate.recommendation.question=生成推薦問題失敗
document.does.not.exist=文檔不存在
knowledge.base.information.does.not.exist=知識庫信息不存在
repetitive.training.in.the.knowledge.base=知識庫重複訓練
knowledge.base.does.not.exist=知識庫不存在
private.key.of.the.marketing.platform.configuration.project.is.empty=營銷中臺配置項目私鑰爲空
decryption.offset.of.the.marketing.platform.configuration.is.empty=營銷中臺配置解密偏移量爲空
middle.server.is.unresponsive.or.has.timed.out=中臺服務器無響應或響應超時!
key.for.the.marketing.platform.configuration.project.is.empty=營銷中臺配置項目key爲空
secret.for.the.marketing.platform.configuration.project.is.empty=營銷中臺配置項目密鑰爲空
failed.to.obtain.xinghai.apptoken=獲取興海apptoken失敗
default.login.channel.login.is.currently.not.supported=暫不支持默認登錄渠道登錄!
third.party.authorization.channel.abnormal=第三方授權渠道異常!
third.party.login.channel.abnormality=第三方登錄渠道異常
abnormal.configuration.of.bai.liantong.open.platform=百聯通開放平臺配置異常!
abnormal.acquisition.of.mini.program.information.please.check.if.the.configuration.is.correct=獲取小程序信息異常!請檢查配置是否正確!
currently.no.default.registration.channel.for.login=暫無默認註冊渠道登錄!
abnormal.registration.channel=註冊渠道異常
login.expiration.time.configured.as.empty=登錄過期時間配置爲空!
there.is.currently.no.default.verification.code.channel.login=暫無默認驗證碼渠道登錄!
verification.code.channel.abnormality=驗證碼渠道異常
failed.to.obtain.baidu.token=獲取百度token失敗
training.exception.please.contact.the.administrator=翻译異常,請聯繫管理員
image.generation.failed=生成圖片失敗
middle.platform.is.unresponsive=中臺無響應,請聯繫開發人員
no.response.please.contact.the.developer=無響應,請聯繫開發人員
abnormal.knowledge.base.training=知識庫訓練異常
abnormal.training.status.of.knowledge.base.acquisition=獲取知識庫訓練狀態異常
delete.knowledge.base.exception=刪除知識庫異常
query.knowledge.base.exception=查詢知識庫異常
variable.structure.configuration.is.not.currently.supported=暫不支持變量結構配置
this.method.is.not.supported=不支持此方法
failed.to.obtain.token=獲取token失敗
re-verify.the.user.identity=請重新驗證用戶身份
user.cannot.be.found=找不到該用戶
verification.code.is.incorrect.please.re-enter=驗證碼有誤,請重新輸入
user.does.not.exist=登錄的用戶不存在
password.error.please.re-enter=密碼錯誤,請重新輸入
unable.find.user.association.relationship=找不到用戶的關聯關係
account.has.already=該賬號已經被註冊,請更換一個
not.support.lang=不支持該語言
call.failure=調用失敗
model.not.exist=模型不存在
upload.more.than.10m=上傳文件不可超過10M
error.file.content.is.null=錯誤的文件,内容不能爲空
file.content.more.than.100w=文件内容不可超100w字符
\ No newline at end of file
publication.failed=\u767C\u4F48\u5931\u6557
create.[role.instruction].configuration.does.not.exist=\u5275\u5EFA[\u89D2\u8272\u6307\u4EE4]\u914D\u7F6E\u4E0D\u5B58\u5728
create.[opening.statement].configuration.does.not.exist=\u5275\u5EFA[\u958B\u5834\u767D]\u914D\u7F6E\u4E0D\u5B58\u5728
failed.to.create.[opening.statement]=\u5275\u5EFA[\u958B\u5834\u767D]\u5931\u6557
the.configuration.for.creating.[avatar.prompt].does.not.exist.please.contact.the.administrator=\u5275\u5EFA[\u982D\u50CF\u63D0\u793A\u8A9E]\u914D\u7F6E\u4E0D\u5B58\u5728\uFF0C\u8ACB\u806F\u7E6B\u7BA1\u7406\u54E1
failed.to.create.[avatar].please.try.again.later=\u5275\u5EFA[\u982D\u50CF]\u5931\u6557,\u8ACB\u7A0D\u5F8C\u518D\u8A66
create.[application.information].configuration.does.not.exist.please.contact.the.administrator=\u5275\u5EFA[\u61C9\u7528\u4FE1\u606F]\u914D\u7F6E\u4E0D\u5B58\u5728\uFF0C\u8ACB\u806F\u7E6B\u7BA1\u7406\u54E1
failed.to.create.[application.information].please.try.again.later=\u5275\u5EFA[\u61C9\u7528\u4FE1\u606F]\u5931\u6557,\u8ACB\u7A0D\u5F8C\u518D\u8A66
user.not.login=\u7528\u6236\u672A\u767B\u9304
application.does.not.exist=\u61C9\u7528\u4E0D\u5B58\u5728
application.not.released=\u61C9\u7528\u672A\u767C\u4F48
generation.failed.please.try.again.later=\u751F\u6210\u5931\u6557,\u8ACB\u7A0D\u5F8C\u91CD\u8A66
data.does.not.exist=\u6578\u64DA\u4E0D\u5B58\u5728
there.are.too.many.tasks.currently.please.try.again.later=\u7576\u524D\u4EFB\u52D9\u904E\u591A\uFF0C\u8ACB\u7A0D\u5F8C\u91CD\u8A66
verification.code.has.expired.please.obtain.it.again=\u9A57\u8B49\u78BC\u5DF2\u904E\u671F\uFF0C\u8ACB\u91CD\u65B0\u7372\u53D6
maximum.number.of.verifications.has.been.reached=\u9A57\u8B49\u6B21\u6578\u5DF2\u9054\u4E0A\u9650
verification.code.sending.failed.please.try.again=\u9A57\u8B49\u78BC\u767C\u9001\u5931\u6557\uFF01\u8ACB\u91CD\u8A66
upload.exception.please.check.the.file.before.uploading.again=\u4E0A\u50B3\u7570\u5E38,\u8ACB\u6AA2\u67E5\u6587\u4EF6\u5F8C\u518D\u4E0A\u50B3
abnormal.call.to.upload.alibaba.cloud.images=\u8ABF\u7528\u4E0A\u50B3\u963F\u91CC\u96F2\u5716\u7247\u7570\u5E38\uFF01
cannot.read.data.from.this.url=\u4E0D\u80FD\u5F9E\u8A72url\u4E2D\u8B80\u53D6\u5230\u6578\u64DA
error.signature=\u932F\u8AA4\u7684\u7C3D\u540D
signature.validity.time.exception=\u7C3D\u540D\u6709\u6548\u6642\u9593\u7570\u5E38
signature.has.expired=\u7C3D\u540D\u5DF2\u904E\u671F
app.not.found=\u672A\u627E\u5230\u61C9\u7528
failed.to.generate.recommendation.question=\u751F\u6210\u63A8\u85A6\u554F\u984C\u5931\u6557
document.does.not.exist=\u6587\u6A94\u4E0D\u5B58\u5728
knowledge.base.information.does.not.exist=\u77E5\u8B58\u5EAB\u4FE1\u606F\u4E0D\u5B58\u5728
repetitive.training.in.the.knowledge.base=\u77E5\u8B58\u5EAB\u91CD\u8907\u8A13\u7DF4
knowledge.base.does.not.exist=\u77E5\u8B58\u5EAB\u4E0D\u5B58\u5728
private.key.of.the.marketing.platform.configuration.project.is.empty=\u71DF\u92B7\u4E2D\u81FA\u914D\u7F6E\u9805\u76EE\u79C1\u9470\u7232\u7A7A
decryption.offset.of.the.marketing.platform.configuration.is.empty=\u71DF\u92B7\u4E2D\u81FA\u914D\u7F6E\u89E3\u5BC6\u504F\u79FB\u91CF\u7232\u7A7A
middle.server.is.unresponsive.or.has.timed.out=\u4E2D\u81FA\u670D\u52D9\u5668\u7121\u97FF\u61C9\u6216\u97FF\u61C9\u8D85\u6642\uFF01
key.for.the.marketing.platform.configuration.project.is.empty=\u71DF\u92B7\u4E2D\u81FA\u914D\u7F6E\u9805\u76EEkey\u7232\u7A7A
secret.for.the.marketing.platform.configuration.project.is.empty=\u71DF\u92B7\u4E2D\u81FA\u914D\u7F6E\u9805\u76EE\u5BC6\u9470\u7232\u7A7A
failed.to.obtain.xinghai.apptoken=\u7372\u53D6\u8208\u6D77apptoken\u5931\u6557
default.login.channel.login.is.currently.not.supported=\u66AB\u4E0D\u652F\u6301\u9ED8\u8A8D\u767B\u9304\u6E20\u9053\u767B\u9304\uFF01
third.party.authorization.channel.abnormal=\u7B2C\u4E09\u65B9\u6388\u6B0A\u6E20\u9053\u7570\u5E38!
third.party.login.channel.abnormality=\u7B2C\u4E09\u65B9\u767B\u9304\u6E20\u9053\u7570\u5E38
abnormal.configuration.of.bai.liantong.open.platform=\u767E\u806F\u901A\u958B\u653E\u5E73\u81FA\u914D\u7F6E\u7570\u5E38\uFF01
abnormal.acquisition.of.mini.program.information.please.check.if.the.configuration.is.correct=\u7372\u53D6\u5C0F\u7A0B\u5E8F\u4FE1\u606F\u7570\u5E38\uFF01\u8ACB\u6AA2\u67E5\u914D\u7F6E\u662F\u5426\u6B63\u78BA\uFF01
currently.no.default.registration.channel.for.login=\u66AB\u7121\u9ED8\u8A8D\u8A3B\u518A\u6E20\u9053\u767B\u9304\uFF01
abnormal.registration.channel=\u8A3B\u518A\u6E20\u9053\u7570\u5E38
login.expiration.time.configured.as.empty=\u767B\u9304\u904E\u671F\u6642\u9593\u914D\u7F6E\u7232\u7A7A!
there.is.currently.no.default.verification.code.channel.login=\u66AB\u7121\u9ED8\u8A8D\u9A57\u8B49\u78BC\u6E20\u9053\u767B\u9304\uFF01
verification.code.channel.abnormality=\u9A57\u8B49\u78BC\u6E20\u9053\u7570\u5E38
failed.to.obtain.baidu.token=\u7372\u53D6\u767E\u5EA6token\u5931\u6557
training.exception.please.contact.the.administrator=\u7FFB\u8BD1\u7570\u5E38,\u8ACB\u806F\u7E6B\u7BA1\u7406\u54E1
image.generation.failed=\u751F\u6210\u5716\u7247\u5931\u6557
middle.platform.is.unresponsive=\u4E2D\u81FA\u7121\u97FF\u61C9\uFF0C\u8ACB\u806F\u7E6B\u958B\u767C\u4EBA\u54E1
no.response.please.contact.the.developer=\u7121\u97FF\u61C9\uFF0C\u8ACB\u806F\u7E6B\u958B\u767C\u4EBA\u54E1
abnormal.knowledge.base.training=\u77E5\u8B58\u5EAB\u8A13\u7DF4\u7570\u5E38
abnormal.training.status.of.knowledge.base.acquisition=\u7372\u53D6\u77E5\u8B58\u5EAB\u8A13\u7DF4\u72C0\u614B\u7570\u5E38
delete.knowledge.base.exception=\u522A\u9664\u77E5\u8B58\u5EAB\u7570\u5E38
query.knowledge.base.exception=\u67E5\u8A62\u77E5\u8B58\u5EAB\u7570\u5E38
variable.structure.configuration.is.not.currently.supported=\u66AB\u4E0D\u652F\u6301\u8B8A\u91CF\u7D50\u69CB\u914D\u7F6E
this.method.is.not.supported=\u4E0D\u652F\u6301\u6B64\u65B9\u6CD5
failed.to.obtain.token=\u7372\u53D6token\u5931\u6557
re-verify.the.user.identity=\u8ACB\u91CD\u65B0\u9A57\u8B49\u7528\u6236\u8EAB\u4EFD
user.cannot.be.found=\u627E\u4E0D\u5230\u8A72\u7528\u6236
verification.code.is.incorrect.please.re-enter=\u9A57\u8B49\u78BC\u6709\u8AA4\uFF0C\u8ACB\u91CD\u65B0\u8F38\u5165
user.does.not.exist=\u7528\u6236\u4E0D\u5B58\u5728
password.error.please.re-enter=\u5BC6\u78BC\u932F\u8AA4,\u8ACB\u91CD\u65B0\u8F38\u5165
unable.find.user.association.relationship=\u627E\u4E0D\u5230\u7528\u6236\u7684\u95DC\u806F\u95DC\u4FC2
account.has.already=\u8A72\u8CEC\u865F\u5DF2\u7D93\u88AB\u8A3B\u518A\uFF0C\u8ACB\u66F4\u63DB\u4E00\u500B
not.support.lang=\u4E0D\u652F\u6301\u8A72\u8A9E\u8A00
call.failure=\u8ABF\u7528\u5931\u6557
model.not.exist=\u6A21\u578B\u4E0D\u5B58\u5728
upload.more.than.10m=\u4E0A\u50B3\u6587\u4EF6\u4E0D\u53EF\u8D85\u904E10M
error.file.content.is.null=\u932F\u8AA4\u7684\u6587\u4EF6,\u5185\u5BB9\u4E0D\u80FD\u7232\u7A7A
file.content.more.than.100w=\u6587\u4EF6\u5185\u5BB9\u4E0D\u53EF\u8D85100w\u5B57\u7B26
collect.limit.message=\u9EDE\u64CA\u904E\u5FEB\uFF0C\u8ACB\u52FF\u91CD\u8907\u64CD\u4F5C
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment