xiaoyong931011
2023-07-21 d5c0d74f06a70a946f9c34c0ea922bf3b9b4dafe
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}")
@@ -271,9 +273,19 @@
                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);
    }
@@ -583,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();
@@ -629,6 +619,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("自动登录失败");
@@ -790,9 +783,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);
    }
@@ -836,6 +829,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);