Commit 0456929a authored by alex yao's avatar alex yao

feat: 会员权益新增字段

parent cd6d79b8
...@@ -2,6 +2,7 @@ package cn.com.poc.equity.aggregate; ...@@ -2,6 +2,7 @@ package cn.com.poc.equity.aggregate;
import cn.com.poc.equity.constants.EquityEnum; import cn.com.poc.equity.constants.EquityEnum;
import cn.com.poc.equity.constants.ModifyEventEnum; import cn.com.poc.equity.constants.ModifyEventEnum;
import cn.com.poc.equity.domain.MemberEquityInfo;
import cn.com.poc.equity.domain.modifyEquityInfo.ModifyEventInfo; import cn.com.poc.equity.domain.modifyEquityInfo.ModifyEventInfo;
import cn.com.poc.equity.entity.BizMemberEquityEntity; import cn.com.poc.equity.entity.BizMemberEquityEntity;
...@@ -68,18 +69,20 @@ public interface MemberEquityService { ...@@ -68,18 +69,20 @@ public interface MemberEquityService {
*/ */
String changeEquityLevel(Long memberId, ModifyEventEnum modifyEventEnum, EquityEnum.TYPE type, EquityEnum.VALIDITY_UNIT validityUnit, ModifyEventInfo modifyEventInfo) throws Exception; String changeEquityLevel(Long memberId, ModifyEventEnum modifyEventEnum, EquityEnum.TYPE type, EquityEnum.VALIDITY_UNIT validityUnit, ModifyEventInfo modifyEventInfo) throws Exception;
/** /**
* 获取会员当前权益等级 * 获取用户剩余可用积分
* *
* @param memberId 用户id * @param memberId
* @return
*/ */
BizMemberEquityEntity getMemberEquityInfo(Long memberId) throws Exception; Long getMemberPoints(Long memberId);
/** /**
* 获取用户剩余可用积分 * 获取用户权益信息
* *
* @param memberId * @param memberId
* @return * @return
*/ */
Long getMemberPoints(Long memberId); MemberEquityInfo getEquityInfo(Long memberId) throws Exception;
} }
package cn.com.poc.equity.aggregate.impl; package cn.com.poc.equity.aggregate.impl;
import cn.com.poc.agent_application.entity.BizAgentApplicationInfoEntity;
import cn.com.poc.agent_application.service.BizAgentApplicationInfoService;
import cn.com.poc.common.constant.BizSnKeyEnum; import cn.com.poc.common.constant.BizSnKeyEnum;
import cn.com.poc.common.constant.CommonConstant; import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.common.utils.DateUtils; import cn.com.poc.common.utils.DateUtils;
...@@ -9,6 +11,7 @@ import cn.com.poc.common.utils.StringUtils; ...@@ -9,6 +11,7 @@ import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.equity.aggregate.MemberEquityService; import cn.com.poc.equity.aggregate.MemberEquityService;
import cn.com.poc.equity.constants.EquityEnum; import cn.com.poc.equity.constants.EquityEnum;
import cn.com.poc.equity.constants.ModifyEventEnum; import cn.com.poc.equity.constants.ModifyEventEnum;
import cn.com.poc.equity.domain.MemberEquityInfo;
import cn.com.poc.equity.domain.modifyEquityInfo.InitModifyEventInfo; import cn.com.poc.equity.domain.modifyEquityInfo.InitModifyEventInfo;
import cn.com.poc.equity.domain.modifyEquityInfo.ModifyEventInfo; import cn.com.poc.equity.domain.modifyEquityInfo.ModifyEventInfo;
import cn.com.poc.equity.domain.modifyEquityInfo.PayModifyEventInfo; import cn.com.poc.equity.domain.modifyEquityInfo.PayModifyEventInfo;
...@@ -19,6 +22,8 @@ import cn.com.poc.equity.query.QueryEquityTransactionHistoryQueryItem; ...@@ -19,6 +22,8 @@ import cn.com.poc.equity.query.QueryEquityTransactionHistoryQueryItem;
import cn.com.poc.equity.query.QueryPointTransactionHistoryQueryCondition; import cn.com.poc.equity.query.QueryPointTransactionHistoryQueryCondition;
import cn.com.poc.equity.query.QueryPointTransactionHistoryQueryItem; import cn.com.poc.equity.query.QueryPointTransactionHistoryQueryItem;
import cn.com.poc.equity.service.*; import cn.com.poc.equity.service.*;
import cn.com.poc.knowledge.entity.BizKnowledgeInfoEntity;
import cn.com.poc.knowledge.service.BizKnowledgeInfoService;
import cn.com.yict.framemax.core.i18n.I18nMessageException; import cn.com.yict.framemax.core.i18n.I18nMessageException;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -56,6 +61,13 @@ public class MemberEquityServiceImpl implements MemberEquityService { ...@@ -56,6 +61,13 @@ public class MemberEquityServiceImpl implements MemberEquityService {
@Resource @Resource
private BizPaymentPackageConfigurationService bizPaymentPackageConfigurationService; private BizPaymentPackageConfigurationService bizPaymentPackageConfigurationService;
@Resource
private BizAgentApplicationInfoService bizAgentApplicationInfoService;
@Resource
private BizKnowledgeInfoService bizKnowledgeInfoService;
@Override @Override
public void initMemberEquity(Long memberId) throws Exception { public void initMemberEquity(Long memberId) throws Exception {
logger.info("-----初始化用户权益开始 memberId:{}-----", memberId); logger.info("-----初始化用户权益开始 memberId:{}-----", memberId);
...@@ -244,16 +256,6 @@ public class MemberEquityServiceImpl implements MemberEquityService { ...@@ -244,16 +256,6 @@ public class MemberEquityServiceImpl implements MemberEquityService {
return transactionSn; return transactionSn;
} }
@Override
public BizMemberEquityEntity getMemberEquityInfo(Long memberId) throws Exception {
BizMemberEquityEntity bizMemberEquityEntity = bizMemberEquityService.getByMemberId(memberId);
if (bizMemberEquityEntity == null) {
this.initMemberEquity(memberId);
bizMemberEquityEntity = bizMemberEquityService.getByMemberId(memberId);
}
return bizMemberEquityEntity;
}
@Override @Override
public Long getMemberPoints(Long memberId) { public Long getMemberPoints(Long memberId) {
BizMemberPointsEntity bizMemberPointsEntity = new BizMemberPointsEntity(); BizMemberPointsEntity bizMemberPointsEntity = new BizMemberPointsEntity();
...@@ -270,6 +272,37 @@ public class MemberEquityServiceImpl implements MemberEquityService { ...@@ -270,6 +272,37 @@ public class MemberEquityServiceImpl implements MemberEquityService {
return points; return points;
} }
@Override
public MemberEquityInfo getEquityInfo(Long memberId) throws Exception {
BizMemberEquityEntity bizMemberEquityEntity = bizMemberEquityService.getByMemberId(memberId);
if (bizMemberEquityEntity == null) {
this.initMemberEquity(memberId);
bizMemberEquityEntity = bizMemberEquityService.getByMemberId(memberId);
}
//获取已创建应用
BizAgentApplicationInfoEntity bizAgentApplicationInfoEntity = new BizAgentApplicationInfoEntity();
bizAgentApplicationInfoEntity.setMemberId(memberId.intValue());
bizAgentApplicationInfoEntity.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizAgentApplicationInfoEntity> applicationInfoEntities = bizAgentApplicationInfoService.findByExample(bizAgentApplicationInfoEntity, null);
//获取知识库数量
BizKnowledgeInfoEntity bizKnowledgeInfoEntity = new BizKnowledgeInfoEntity();
bizKnowledgeInfoEntity.setMemberId(memberId.toString());
bizKnowledgeInfoEntity.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizKnowledgeInfoEntity> knowledgeInfoEntities = bizKnowledgeInfoService.findByExample(bizKnowledgeInfoEntity, null);
String equityConfig = bizMemberEquityEntity.getEquityConfig();
MemberEquityInfo memberEquityInfo = JsonUtils.deSerialize(equityConfig, MemberEquityInfo.class);
if (memberEquityInfo == null) {
memberEquityInfo = new MemberEquityInfo();
}
memberEquityInfo.setEquityLevel(EquityEnum.TYPE.valueOf(bizMemberEquityEntity.getEquityLevel()));
memberEquityInfo.setExpiredDate(bizMemberEquityEntity.getExpiredDate());
memberEquityInfo.setUsedAgentNum(applicationInfoEntities.size());
memberEquityInfo.setUsedKnowledgeNum(knowledgeInfoEntities.size());
return memberEquityInfo;
}
/** /**
* 检查权益包是否已发放 * 检查权益包是否已发放
* *
......
...@@ -8,7 +8,7 @@ import java.util.Date; ...@@ -8,7 +8,7 @@ import java.util.Date;
* @author alex.yao * @author alex.yao
* @date 2024/12/6 * @date 2024/12/6
*/ */
public class EquityInfo { public class MemberEquityInfo {
private EquityEnum.TYPE equityLevel; private EquityEnum.TYPE equityLevel;
...@@ -16,8 +16,12 @@ public class EquityInfo { ...@@ -16,8 +16,12 @@ public class EquityInfo {
private Integer agentNum; private Integer agentNum;
private Integer usedAgentNum;
private Integer knowledgeNum; private Integer knowledgeNum;
private Integer usedKnowledgeNum;
public EquityEnum.TYPE getEquityLevel() { public EquityEnum.TYPE getEquityLevel() {
return equityLevel; return equityLevel;
} }
...@@ -49,4 +53,20 @@ public class EquityInfo { ...@@ -49,4 +53,20 @@ public class EquityInfo {
public void setKnowledgeNum(Integer knowledgeNum) { public void setKnowledgeNum(Integer knowledgeNum) {
this.knowledgeNum = knowledgeNum; this.knowledgeNum = knowledgeNum;
} }
public Integer getUsedAgentNum() {
return usedAgentNum;
}
public void setUsedAgentNum(Integer usedAgentNum) {
this.usedAgentNum = usedAgentNum;
}
public Integer getUsedKnowledgeNum() {
return usedKnowledgeNum;
}
public void setUsedKnowledgeNum(Integer usedKnowledgeNum) {
this.usedKnowledgeNum = usedKnowledgeNum;
}
} }
package cn.com.poc.equity.dto; package cn.com.poc.equity.dto;
import cn.com.poc.equity.constants.EquityEnum;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
...@@ -12,17 +14,60 @@ import java.util.Date; ...@@ -12,17 +14,60 @@ import java.util.Date;
*/ */
public class CurrentUserEquityInfoDto implements Serializable { public class CurrentUserEquityInfoDto implements Serializable {
private String equityLevel; private Integer usedAgentCount;
private Integer maxAgentCount;
private Integer usedKnowledgeCount;
private Integer maxKnowledgeCount;
private EquityEnum.TYPE equityLevel;
private BigDecimal points; private BigDecimal points;
private Date expireTime; private Date expireTime;
public String getEquityLevel() {
public Integer getUsedAgentCount() {
return usedAgentCount;
}
public void setUsedAgentCount(Integer usedAgentCount) {
this.usedAgentCount = usedAgentCount;
}
public Integer getUsedKnowledgeCount() {
return usedKnowledgeCount;
}
public void setUsedKnowledgeCount(Integer usedKnowledgeCount) {
this.usedKnowledgeCount = usedKnowledgeCount;
}
public Integer getMaxAgentCount() {
return maxAgentCount;
}
public void setMaxAgentCount(Integer maxAgentCount) {
this.maxAgentCount = maxAgentCount;
}
public Integer getMaxKnowledgeCount() {
return maxKnowledgeCount;
}
public void setMaxKnowledgeCount(Integer maxKnowledgeCount) {
this.maxKnowledgeCount = maxKnowledgeCount;
}
public EquityEnum.TYPE getEquityLevel() {
return equityLevel; return equityLevel;
} }
public void setEquityLevel(String equityLevel) { public void setEquityLevel(EquityEnum.TYPE equityLevel) {
this.equityLevel = equityLevel; this.equityLevel = equityLevel;
} }
......
package cn.com.poc.equity.rest.impl; package cn.com.poc.equity.rest.impl;
import cn.com.poc.agent_application.entity.BizAgentApplicationInfoEntity;
import cn.com.poc.agent_application.service.BizAgentApplicationInfoService;
import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.common.utils.BlContext; import cn.com.poc.common.utils.BlContext;
import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.equity.aggregate.EquityService; import cn.com.poc.equity.aggregate.EquityService;
import cn.com.poc.equity.aggregate.MemberEquityService; import cn.com.poc.equity.aggregate.MemberEquityService;
import cn.com.poc.equity.constants.EquityEnum; import cn.com.poc.equity.constants.EquityEnum;
import cn.com.poc.equity.domain.AgentEquity; import cn.com.poc.equity.domain.AgentEquity;
import cn.com.poc.equity.domain.MemberEquityInfo;
import cn.com.poc.equity.domain.PointEquityInfo; import cn.com.poc.equity.domain.PointEquityInfo;
import cn.com.poc.equity.dto.CurrentUserEquityInfoDto; import cn.com.poc.equity.dto.CurrentUserEquityInfoDto;
import cn.com.poc.equity.dto.EquityPackagesDto; import cn.com.poc.equity.dto.EquityPackagesDto;
...@@ -12,6 +17,8 @@ import cn.com.poc.equity.dto.PointPackagesDto; ...@@ -12,6 +17,8 @@ import cn.com.poc.equity.dto.PointPackagesDto;
import cn.com.poc.equity.entity.BizMemberEquityEntity; import cn.com.poc.equity.entity.BizMemberEquityEntity;
import cn.com.poc.equity.entity.BizPaymentPackageConfigurationEntity; import cn.com.poc.equity.entity.BizPaymentPackageConfigurationEntity;
import cn.com.poc.equity.rest.EquityRest; import cn.com.poc.equity.rest.EquityRest;
import cn.com.poc.knowledge.entity.BizKnowledgeInfoEntity;
import cn.com.poc.knowledge.service.BizKnowledgeInfoService;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity; import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -29,6 +36,7 @@ public class EquityRestImpl implements EquityRest { ...@@ -29,6 +36,7 @@ public class EquityRestImpl implements EquityRest {
@Resource @Resource
private MemberEquityService memberEquityService; private MemberEquityService memberEquityService;
@Override @Override
public EquityPackagesDto getPackageList() { public EquityPackagesDto getPackageList() {
List<AgentEquity> professinalList = equityService.getEquityList(EquityEnum.TYPE.professional); List<AgentEquity> professinalList = equityService.getEquityList(EquityEnum.TYPE.professional);
...@@ -65,15 +73,19 @@ public class EquityRestImpl implements EquityRest { ...@@ -65,15 +73,19 @@ public class EquityRestImpl implements EquityRest {
@Override @Override
public CurrentUserEquityInfoDto getCurrentEquity() throws Exception { public CurrentUserEquityInfoDto getCurrentEquity() throws Exception {
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException(); UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
BizMemberEquityEntity memberEquityEntity = memberEquityService.getMemberEquityInfo(userBaseEntity.getUserId()); MemberEquityInfo equityInfo = memberEquityService.getEquityInfo(userBaseEntity.getUserId());
Long memberPoints = memberEquityService.getMemberPoints(userBaseEntity.getUserId()); Long memberPoints = memberEquityService.getMemberPoints(userBaseEntity.getUserId());
BigDecimal bigDecimal = new BigDecimal(memberPoints); BigDecimal bigDecimal = new BigDecimal(memberPoints);
BigDecimal points = bigDecimal.divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP); BigDecimal points = bigDecimal.divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP);
CurrentUserEquityInfoDto currentUserEquityInfoDto = new CurrentUserEquityInfoDto(); CurrentUserEquityInfoDto currentUserEquityInfoDto = new CurrentUserEquityInfoDto();
currentUserEquityInfoDto.setUsedAgentCount(equityInfo.getUsedAgentNum());
currentUserEquityInfoDto.setMaxAgentCount(equityInfo.getAgentNum());
currentUserEquityInfoDto.setUsedKnowledgeCount(equityInfo.getUsedKnowledgeNum());
currentUserEquityInfoDto.setMaxKnowledgeCount(equityInfo.getKnowledgeNum());
currentUserEquityInfoDto.setPoints(points); currentUserEquityInfoDto.setPoints(points);
currentUserEquityInfoDto.setExpireTime(memberEquityEntity.getExpiredDate()); currentUserEquityInfoDto.setExpireTime(equityInfo.getExpiredDate());
currentUserEquityInfoDto.setEquityLevel(memberEquityEntity.getEquityLevel()); currentUserEquityInfoDto.setEquityLevel(equityInfo.getEquityLevel());
return currentUserEquityInfoDto; return currentUserEquityInfoDto;
} }
} }
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