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

feat: 会员权益新增字段

parent cd6d79b8
......@@ -2,6 +2,7 @@ package cn.com.poc.equity.aggregate;
import cn.com.poc.equity.constants.EquityEnum;
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.entity.BizMemberEquityEntity;
......@@ -68,18 +69,20 @@ public interface MemberEquityService {
*/
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
* @return
*/
Long getMemberPoints(Long memberId);
MemberEquityInfo getEquityInfo(Long memberId) throws Exception;
}
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.CommonConstant;
import cn.com.poc.common.utils.DateUtils;
......@@ -9,6 +11,7 @@ import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.equity.aggregate.MemberEquityService;
import cn.com.poc.equity.constants.EquityEnum;
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.ModifyEventInfo;
import cn.com.poc.equity.domain.modifyEquityInfo.PayModifyEventInfo;
......@@ -19,6 +22,8 @@ import cn.com.poc.equity.query.QueryEquityTransactionHistoryQueryItem;
import cn.com.poc.equity.query.QueryPointTransactionHistoryQueryCondition;
import cn.com.poc.equity.query.QueryPointTransactionHistoryQueryItem;
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 org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
......@@ -56,6 +61,13 @@ public class MemberEquityServiceImpl implements MemberEquityService {
@Resource
private BizPaymentPackageConfigurationService bizPaymentPackageConfigurationService;
@Resource
private BizAgentApplicationInfoService bizAgentApplicationInfoService;
@Resource
private BizKnowledgeInfoService bizKnowledgeInfoService;
@Override
public void initMemberEquity(Long memberId) throws Exception {
logger.info("-----初始化用户权益开始 memberId:{}-----", memberId);
......@@ -244,16 +256,6 @@ public class MemberEquityServiceImpl implements MemberEquityService {
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
public Long getMemberPoints(Long memberId) {
BizMemberPointsEntity bizMemberPointsEntity = new BizMemberPointsEntity();
......@@ -270,6 +272,37 @@ public class MemberEquityServiceImpl implements MemberEquityService {
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;
* @author alex.yao
* @date 2024/12/6
*/
public class EquityInfo {
public class MemberEquityInfo {
private EquityEnum.TYPE equityLevel;
......@@ -16,8 +16,12 @@ public class EquityInfo {
private Integer agentNum;
private Integer usedAgentNum;
private Integer knowledgeNum;
private Integer usedKnowledgeNum;
public EquityEnum.TYPE getEquityLevel() {
return equityLevel;
}
......@@ -49,4 +53,20 @@ public class EquityInfo {
public void setKnowledgeNum(Integer 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;
import cn.com.poc.equity.constants.EquityEnum;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
......@@ -12,17 +14,60 @@ import java.util.Date;
*/
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 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;
}
public void setEquityLevel(String equityLevel) {
public void setEquityLevel(EquityEnum.TYPE equityLevel) {
this.equityLevel = equityLevel;
}
......
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.JsonUtils;
import cn.com.poc.equity.aggregate.EquityService;
import cn.com.poc.equity.aggregate.MemberEquityService;
import cn.com.poc.equity.constants.EquityEnum;
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.dto.CurrentUserEquityInfoDto;
import cn.com.poc.equity.dto.EquityPackagesDto;
......@@ -12,6 +17,8 @@ import cn.com.poc.equity.dto.PointPackagesDto;
import cn.com.poc.equity.entity.BizMemberEquityEntity;
import cn.com.poc.equity.entity.BizPaymentPackageConfigurationEntity;
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 org.springframework.stereotype.Component;
......@@ -29,6 +36,7 @@ public class EquityRestImpl implements EquityRest {
@Resource
private MemberEquityService memberEquityService;
@Override
public EquityPackagesDto getPackageList() {
List<AgentEquity> professinalList = equityService.getEquityList(EquityEnum.TYPE.professional);
......@@ -65,15 +73,19 @@ public class EquityRestImpl implements EquityRest {
@Override
public CurrentUserEquityInfoDto getCurrentEquity() throws Exception {
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
BizMemberEquityEntity memberEquityEntity = memberEquityService.getMemberEquityInfo(userBaseEntity.getUserId());
MemberEquityInfo equityInfo = memberEquityService.getEquityInfo(userBaseEntity.getUserId());
Long memberPoints = memberEquityService.getMemberPoints(userBaseEntity.getUserId());
BigDecimal bigDecimal = new BigDecimal(memberPoints);
BigDecimal points = bigDecimal.divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP);
CurrentUserEquityInfoDto currentUserEquityInfoDto = new CurrentUserEquityInfoDto();
currentUserEquityInfoDto.setUsedAgentCount(equityInfo.getUsedAgentNum());
currentUserEquityInfoDto.setMaxAgentCount(equityInfo.getAgentNum());
currentUserEquityInfoDto.setUsedKnowledgeCount(equityInfo.getUsedKnowledgeNum());
currentUserEquityInfoDto.setMaxKnowledgeCount(equityInfo.getKnowledgeNum());
currentUserEquityInfoDto.setPoints(points);
currentUserEquityInfoDto.setExpireTime(memberEquityEntity.getExpiredDate());
currentUserEquityInfoDto.setEquityLevel(memberEquityEntity.getEquityLevel());
currentUserEquityInfoDto.setExpireTime(equityInfo.getExpiredDate());
currentUserEquityInfoDto.setEquityLevel(equityInfo.getEquityLevel());
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