From 15a6f5b0a38f0cd19c777c75c3fc4ff498fbc8dc Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 18 Aug 2023 10:17:58 +0800
Subject: [PATCH] 赠送积分更新状态
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 163 +++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 123 insertions(+), 40 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index aa3ce94..7514881 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -20,6 +20,7 @@
import cc.mrbird.febs.mall.vo.*;
import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
import cc.mrbird.febs.pay.service.IXcxPayService;
+import cc.mrbird.febs.rabbit.producter.AgentProducer;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
@@ -69,6 +70,7 @@
private final SpringContextHolder springContextHolder;
private final MallAgentRecordMapper mallAgentRecordMapper;
private final IMallMoneyFlowService mallMoneyFlowService;
+ private final AgentProducer agentProducer;
@Value("${spring.profiles.active}")
@@ -237,7 +239,7 @@
MallMember mallMember = this.baseMapper.selectById(id);
MallMemberVo mallMemberVo = MallMemberConversion.INSTANCE.entityToVo(mallMember);
- if(StrUtil.isNotEmpty(mallMember.getReferrerId())){
+ if(!"".equals(mallMember.getReferrerId()) && ObjectUtil.isNotEmpty(mallMember.getReferrerId())){
MallMember referMember = this.baseMapper.selectInfoByInviteId(mallMember.getReferrerId());
if (referMember != null) {
mallMemberVo.setReferrerName(referMember.getName());
@@ -273,16 +275,22 @@
}
if(AgentLevelEnum.LEVEL_ONE.name().equals(mallAgentRecordAgree.getAgentLevel())){
mallMemberVo.setAgentLevel(1);
- }else if(AgentLevelEnum.LEVEL_TWO.name().equals(mallAgentRecordAgree.getAgentLevel())){
+ }
+ if(AgentLevelEnum.LEVEL_TWO.name().equals(mallAgentRecordAgree.getAgentLevel())){
mallMemberVo.setAgentLevel(2);
- }else if(AgentLevelEnum.LEVEL_THREE.name().equals(mallAgentRecordAgree.getAgentLevel())){
+ }
+ if(AgentLevelEnum.LEVEL_THREE.name().equals(mallAgentRecordAgree.getAgentLevel())){
mallMemberVo.setAgentLevel(3);
}
}else if(ObjectUtil.isNotEmpty(mallAgentRecordDisagree)){
mallMemberVo.setIsAgent(3);
}
- log.info(mallMemberVo.getName()+"---"+mallMemberVo.getAgentLevel());
-
+// log.info(mallMemberVo.getName()+"---"+mallMemberVo.getAgentLevel());
+ DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.SCORE_CHANGE.getType(),
+ DataDictionaryEnum.SCORE_CHANGE.getCode()
+ );
+ mallMemberVo.setScoreChange(dataDictionaryCustom.getValue() == null ? "1" : dataDictionaryCustom.getValue());
return new FebsResponse().success().data(mallMemberVo);
}
@@ -351,11 +359,22 @@
MallMember mallMember = this.baseMapper.selectById(memberId);
List<TeamListVo> list = this.baseMapper.selectTeamListByInviteId(mallMember.getInviteId());
-
+ if(CollUtil.isNotEmpty(list)){
+ for(TeamListVo teamListVo : list){
+ List<MallOrderInfo> mallOrderInfos = mallOrderInfoMapper.selectTotalAmountListByMemberId(teamListVo.getId());
+ if(CollUtil.isNotEmpty(mallOrderInfos)){
+ BigDecimal reduce = mallOrderInfos.stream().map(MallOrderInfo::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+ teamListVo.setAmount(reduce);
+ teamListVo.setOrderCnt(mallOrderInfos.size());
+ List<MallMember> mallMembers = this.baseMapper.selectChildAgentListByInviteId(teamListVo.getInviteId());
+ teamListVo.setCnt(CollUtil.isEmpty(mallMembers) ? 0 : mallMembers.size());
+ }
+ }
+ }
MyTeamVo myTeamVo = new MyTeamVo();
myTeamVo.setTeam(list);
- myTeamVo.setMyAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 1));
- myTeamVo.setMyTeamAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 2));
+ myTeamVo.setMyAchieve(this.baseMapper.selectOrderAmountByMemberId(mallMember.getInviteId(), 1));
+ myTeamVo.setMyTeamAchieve(this.baseMapper.selectOrderAmountByMemberId(mallMember.getInviteId(), 2));
myTeamVo.setMyTeamCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId()).size());
return new FebsResponse().success().data(myTeamVo);
}
@@ -488,7 +507,7 @@
MallMember referMember = this.baseMapper.selectInfoByInviteId(mallMember.getReferrerId());
if (referMember != null) {
commissionVo.setReferrerName(referMember.getName());
- commissionVo.setAvatar(referMember.getAvatar());
+ commissionVo.setReferrerAvatar(referMember.getAvatar());
}
DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.AGENT_LEVEL, mallMember.getLevel());
@@ -497,7 +516,7 @@
}
MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(id);
- commissionVo.setCommission(wallet.getCommission());
+ commissionVo.setCommission(wallet.getBalance());
commissionVo.setToday(mallMoneyFlowMapper.selectCommissionIncome(1, new Date(), id));
commissionVo.setMonth(mallMoneyFlowMapper.selectCommissionIncome(2, new Date(), id));
commissionVo.setTotal(mallMoneyFlowMapper.selectCommissionIncome(null, null, id));
@@ -591,34 +610,61 @@
}
String openId = json.getString("openid");
- String sessionKey = json.getString("session_key");
- log.info("openId={},sessionKey={}", openId, sessionKey);
+ String accessToken = json.getString("access_token");
+ log.info("openId={}", openId);
// 查询用户是否存在
- MallMember mallMember = null;
- synchronized (this) {
- mallMember = this.baseMapper.selectMemberByOpenId(openId);
- if (ObjectUtil.isEmpty(mallMember)) {
- // 新增用户
- mallMember = new MallMember();
- mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
- mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
- mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name());
- mallMember.setOpenId(openId);
- mallMember.setSessionKey(sessionKey);
- this.baseMapper.insert(mallMember);
-
- mallMember = this.baseMapper.selectMemberByOpenId(openId);
- String inviteId = ShareCodeUtil.toSerialCode(mallMember.getId());
- mallMember.setInviteId(inviteId);
- this.baseMapper.updateById(mallMember);
- MallMemberWallet wallet = new MallMemberWallet();
- wallet.setBalance(BigDecimal.ZERO);
- wallet.setMemberId(mallMember.getId());
- mallMemberWalletMapper.insert(wallet);
- } else {
- mallMember.setSessionKey(sessionKey);
- this.baseMapper.updateById(mallMember);
+ MallMember mallMember = this.baseMapper.selectMemberByOpenId(openId);
+ if (ObjectUtil.isEmpty(mallMember)) {
+ //根据OPENID,查询用户信息,如果存在,直接返回
+ mallMember = new MallMember();
+ mallMember.setPassword(SecureUtil.md5("a123456"));
+ mallMember.setName("微信用户");
+ mallMember.setSubStatus(MallMember.SUB_STATUS_DISABLED);
+ mallMember.setReferrerId(null);
+ mallMember.setPhone(null);
+ mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
+ mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
+ mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name());
+ mallMember.setSex("男");
+ mallMember.setBindPhone(null);
+ mallMember.setOpenId(openId);
+ this.baseMapper.insert(mallMember);
+ //生成邀请码
+ String inviteId = ShareCodeUtil.toSerialCode(mallMember.getId());
+ mallMember.setInviteId(inviteId);
+ //推荐人和推荐人链
+ boolean flag = false;
+ String parentId = mallMember.getReferrerId();
+ if (StrUtil.isBlank(parentId)) {
+ flag = true;
}
+ String ids = "";
+ while (!flag) {
+ if (StrUtil.isBlank(ids)) {
+ ids += parentId;
+ } else {
+ ids += ("," + parentId);
+ }
+ MallMember parentMember = this.baseMapper.selectInfoByInviteId(parentId);
+ if (parentMember == null) {
+ break;
+ }
+ parentId = parentMember.getReferrerId();
+ if (StrUtil.isBlank(parentMember.getReferrerId())) {
+ flag = true;
+ }
+ }
+ if (StrUtil.isNotBlank(ids)) {
+ mallMember.setReferrerIds(ids);
+ }
+ this.baseMapper.updateById(mallMember);
+ //初始化钱包信息
+ MallMemberWallet wallet = new MallMemberWallet();
+ wallet.setBalance(BigDecimal.ZERO);
+ wallet.setMemberId(mallMember.getId());
+ mallMemberWalletMapper.insert(wallet);
+
+ return new FebsResponse().fail().message("请先关注公众号");
}
// 存放redis
String redisKey = AppContants.XCX_LOGIN_PREFIX + mallMember.getId();
@@ -637,6 +683,9 @@
authInfo.put("appid", xcxProperties.getXcxAppid());
authInfo.put("member", mallMember);
authInfo.put("rasToken", generateAsaToken(token));
+ authInfo.put("accessToken",accessToken);
+ authInfo.put("openId",openId);
+ agentProducer.sendMemberInfoMsg(accessToken+"|"+openId);
febsResponse.success().data(authInfo);
} else {
return febsResponse.fail().message("自动登录失败");
@@ -784,8 +833,7 @@
amount,
MoneyFlowTypeEnum.RECHARGE.getValue(),
rechargeNo,
- FlowTypeEnum.BALANCE.getValue(),
- "余额充值",1);
+ FlowTypeEnum.BALANCE.getValue());
String wxResultStr = JSONUtil.toJsonStr(brandWCPayRequestData);
String payResultStr = brandWCPayRequestData.getPrepay_id();
@@ -798,9 +846,9 @@
@Override
public void updateMemberAgent(Long memberId,String levelCode) {
mallAgentRecordMapper.updateStateByMemberId(memberId);
-
+ MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectById(memberId);
//更新用户表中的LEVEL
- MallMember mallMember = this.baseMapper.selectById(memberId);
+ MallMember mallMember = this.baseMapper.selectById(mallAgentRecord.getMemberId());
mallMember.setLevel(levelCode);
this.baseMapper.updateById(mallMember);
}
@@ -844,6 +892,41 @@
return new FebsResponse().success().data(apiMallAgentRecordVo);
}
+ @Override
+ public FebsResponse findMallRollPerkInPage(ApiMallRollPerkDto queryDto) {
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ Page<MallRollPerk> page = new Page<>(queryDto.getPageNow(), queryDto.getPageSize());
+ MallRollPerk mallRollPerk = new MallRollPerk();
+ if(ObjectUtil.isNotEmpty(queryDto.getState())){
+ mallRollPerk.setState(queryDto.getState());
+ }
+ mallRollPerk.setRollId(queryDto.getRollId());
+ mallRollPerk.setMemberId(memberId);
+ IPage<MallRollPerk> mallGoodsCommentVoIPage = this.baseMapper.findMallRollPerkInPage(page,mallRollPerk);
+ return new FebsResponse().success().data(mallGoodsCommentVoIPage);
+ }
+
+ @Override
+ public FebsResponse findMallMemberClassInPage(ApiMemberClassDto queryDto) {
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ MallMemberClass mallMemberClass = new MallMemberClass();
+ Page<MallMemberClass> page = new Page<>(queryDto.getPageNow(), queryDto.getPageSize());
+ mallMemberClass.setMemberId(memberId);
+ IPage<MallMemberClass> mallMemberClassList = this.baseMapper.findMallMemberClassInPage(page,mallMemberClass);
+ return new FebsResponse().success().data(mallMemberClassList);
+ }
+
+ @Override
+ public FebsResponse findMallMemberHouseInPage(ApiMemberHouseDto queryDto) {
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ MallMemberHouse mallMemberHouse = new MallMemberHouse();
+ Page<MallMemberHouse> page = new Page<>(queryDto.getPageNow(), queryDto.getPageSize());
+ mallMemberHouse.setMemberId(memberId);
+ mallMemberHouse.setState(queryDto.getState());
+ IPage<MallMemberHouse> mallMemberHouseList = this.baseMapper.findMallMemberHouseInPage(page,mallMemberHouse);
+ return new FebsResponse().success().data(mallMemberHouseList);
+ }
+
private String getXcxLoginUrl(String code) {
String wechatLoginUrl =xcxProperties.getWecharLoginUrl();
return String.format(wechatLoginUrl, xcxProperties.getXcxAppid(), xcxProperties.getXcxSecret(), code);
--
Gitblit v1.9.1