From d5c0d74f06a70a946f9c34c0ea922bf3b9b4dafe Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Fri, 21 Jul 2023 17:19:23 +0800 Subject: [PATCH] 订单支付后生成对应的课程单 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 117 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 79 insertions(+), 38 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 73e0c7a..1cef8c7 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}") @@ -267,9 +269,23 @@ mallMemberVo.setIsAgent(1); }else if(ObjectUtil.isNotEmpty(mallAgentRecordAgree)){ mallMemberVo.setIsAgent(2); + if(StrUtil.isNotEmpty(mallAgentRecordAgree.getAgentLevel())){ + DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("AGENT_LEVEL_APPLY", mallAgentRecordAgree.getAgentLevel()); + mallMemberVo.setAgentLevelName(dataDictionaryCustom.getDescription()); + } + if(AgentLevelEnum.LEVEL_ONE.name().equals(mallAgentRecordAgree.getAgentLevel())){ + mallMemberVo.setAgentLevel(1); + } + if(AgentLevelEnum.LEVEL_TWO.name().equals(mallAgentRecordAgree.getAgentLevel())){ + mallMemberVo.setAgentLevel(2); + } + 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()); return new FebsResponse().success().data(mallMemberVo); } @@ -579,34 +595,12 @@ } 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)) { + return febsResponse.fail().message("请先关注公众号"); } // 存放redis String redisKey = AppContants.XCX_LOGIN_PREFIX + mallMember.getId(); @@ -618,13 +612,16 @@ } } String token = IdUtil.simpleUUID(); - redisUtils.set(token, JSONObject.toJSONString(mallMember), 360000); - redisUtils.set(redisKey, token, 360000); + redisUtils.set(token, JSONObject.toJSONString(mallMember), -1); + redisUtils.set(redisKey, token, -1); Map<String, Object> authInfo = new HashMap<>(); authInfo.put("token", token); 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("自动登录失败"); @@ -748,11 +745,13 @@ Integer type = apiRechargeWalletDto.getType(); if(2 == type){ //成为合伙人的充值金额 - DataDictionaryCustom agentPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.PRICE_AMOUNT.getType(), - DataDictionaryEnum.PRICE_AMOUNT.getCode()); - String agentPrice = agentPriceDic.getValue(); - BigDecimal price = new BigDecimal(agentPrice); - if(price.compareTo(amount) != 0){ + MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectById(apiRechargeWalletDto.getAgentApplyId()); + BigDecimal agentPrice = mallAgentRecord.getAmount(); +// DataDictionaryCustom agentPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.PRICE_AMOUNT.getType(), +// DataDictionaryEnum.PRICE_AMOUNT.getCode()); +// String agentPrice = agentPriceDic.getValue(); +// BigDecimal price = new BigDecimal(agentPrice); + if(agentPrice.compareTo(amount) != 0){ return new FebsResponse().fail().message("成为合伙人的金额为"+agentPrice); } } @@ -782,12 +781,12 @@ } @Override - public void updateMemberAgent(Long memberId) { + public void updateMemberAgent(Long memberId,String levelCode) { mallAgentRecordMapper.updateStateByMemberId(memberId); - + MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectById(memberId); //更新用户表中的LEVEL - MallMember mallMember = this.baseMapper.selectById(memberId); - mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name()); + MallMember mallMember = this.baseMapper.selectById(mallAgentRecord.getMemberId()); + mallMember.setLevel(levelCode); this.baseMapper.updateById(mallMember); } @@ -823,6 +822,48 @@ return new FebsResponse().success().data(map); } + @Override + public FebsResponse agentApplyInfo() { + Long memberId = LoginUserUtil.getLoginUser().getId(); + ApiMallAgentRecordVo apiMallAgentRecordVo = mallAgentRecordMapper.selectApiMallAgentRecordVoByMemberIdAndState(memberId,MallAgentRecord.APPLY_ING); + 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