From 11ba3f40fb970efabfe64843e0c736d1dfb041d0 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 13 Feb 2023 11:13:06 +0800 Subject: [PATCH] 创建订单的判断条件去掉,由新增的接口判断 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 103 +++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 79 insertions(+), 24 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 2c4de86..053e033 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 @@ -17,6 +17,8 @@ import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; import cc.mrbird.febs.mall.service.ICommonService; import cc.mrbird.febs.mall.vo.*; +import cc.mrbird.febs.pay.model.BrandWCPayRequestData; +import cc.mrbird.febs.pay.service.IXcxPayService; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; @@ -25,6 +27,7 @@ import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.asymmetric.KeyType; import cn.hutool.crypto.asymmetric.RSA; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -63,6 +66,7 @@ private final MallRegisterAppealMapper mallRegisterAppealMapper; private final MallTeamLeaderMapper mallTeamLeaderMapper; private final SpringContextHolder springContextHolder; + private final MallAgentRecordMapper mallAgentRecordMapper; @Value("${spring.profiles.active}") @@ -229,10 +233,11 @@ MallMember mallMember = this.baseMapper.selectById(id); MallMemberVo mallMemberVo = MallMemberConversion.INSTANCE.entityToVo(mallMember); - - MallMember referMember = this.baseMapper.selectInfoByInviteId(mallMember.getReferrerId()); - if (referMember != null) { - mallMemberVo.setReferrerName(referMember.getName()); + if(StrUtil.isNotEmpty(mallMember.getReferrerId())){ + MallMember referMember = this.baseMapper.selectInfoByInviteId(mallMember.getReferrerId()); + if (referMember != null) { + mallMemberVo.setReferrerName(referMember.getName()); + } } if (StrUtil.isNotBlank(mallMember.getTradePassword())) { @@ -244,23 +249,24 @@ mallMemberVo.setHasPayment(1); } -// DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.AGENT_LEVEL, mallMember.getLevel()); -// if (dic != null) { -// mallMemberVo.setLevelName(dic.getDescription()); -// } MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId()); mallMemberVo.setBalance(wallet.getBalance()); mallMemberVo.setScore(wallet.getScore()); mallMemberVo.setPrizeScore(wallet.getPrizeScore()); mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id)); - //用户是否是团长 - List<MallTeamLeader> mallTeamLeaders = mallTeamLeaderMapper.selectListByMemberIdAndState(mallMember.getId(), MallTeamLeader.STATE_YES); - if(CollUtil.isNotEmpty(mallTeamLeaders)){ - mallMemberVo.setIsTeamLeader(1); - }else{ - mallMemberVo.setIsTeamLeader(2); + //代理状态 + MallAgentRecord mallAgentRecordIng = mallAgentRecordMapper.selectByMemberIdAndState(id, MallAgentRecord.APPLY_ING); + MallAgentRecord mallAgentRecordAgree = mallAgentRecordMapper.selectByMemberIdAndState(id, MallAgentRecord.APPLY_AGREE); + MallAgentRecord mallAgentRecordDisagree = mallAgentRecordMapper.selectByMemberIdAndState(id, MallAgentRecord.APPLY_DISAGREE); + if(ObjectUtil.isNotEmpty(mallAgentRecordIng)){ + mallMemberVo.setIsAgent(1); + }else if(ObjectUtil.isNotEmpty(mallAgentRecordAgree)){ + mallMemberVo.setIsAgent(2); + }else if(ObjectUtil.isNotEmpty(mallAgentRecordDisagree)){ + mallMemberVo.setIsAgent(3); } + return new FebsResponse().success().data(mallMemberVo); } @@ -436,15 +442,7 @@ public BigDecimal canMoney() { Long memberId = LoginUserUtil.getLoginUser().getId(); MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); - BigDecimal profit = mallMoneyFlowMapper.selectProfitByDateAndMemberId(memberId); - - BigDecimal canMoney = wallet.getCommission(); - if (profit != null) { - if(canMoney.compareTo(BigDecimal.ZERO) > 0) { - canMoney = canMoney.subtract(profit); - } - } - return canMoney; + return wallet.getBalance().setScale(2,BigDecimal.ROUND_DOWN); } @Override @@ -696,11 +694,68 @@ authInfo.put("token", token); authInfo.put("member", mallMember); authInfo.put("rasToken", generateAsaToken(token)); - return new FebsResponse().success().message("登陆成功"); + return new FebsResponse().success().data(authInfo); } return new FebsResponse().fail().message("验证码错误"); } + @Override + public FebsResponse xcxOpen(ApiXcxOpenDto apiXcxOpenDto) { + DataDictionaryCustom rangeSwitch = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.RANGE_SWITCH.getType(), DataDictionaryEnum.RANGE_SWITCH.getCode()); + if(StrUtil.isNotBlank(rangeSwitch.getValue()) && "1".equals(rangeSwitch.getValue())){ + if(ObjectUtil.isNull(apiXcxOpenDto.getLongitude()) || ObjectUtil.isNull(apiXcxOpenDto.getLatitude())){ + return new FebsResponse().fail().message("请授权位置信息"); + } + Double longitude = apiXcxOpenDto.getLongitude(); + Double latitude = apiXcxOpenDto.getLatitude(); + + DataDictionaryCustom rangeSize = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.RANGE_SIZE.getType(), DataDictionaryEnum.RANGE_SIZE.getCode()); + if(ObjectUtil.isEmpty(rangeSize)){ + return new FebsResponse().success().data(2); + } + if(StrUtil.isBlank(rangeSize.getValue())){ + return new FebsResponse().success().data(2); + } + //方位大小,换成单位:米 + Integer value = Integer.parseInt(rangeSize.getValue()) * 1000; + //根据经纬度获取周围团长的距离 + MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByLonAndLat(longitude, latitude); + if(ObjectUtil.isEmpty(mallTeamLeader)){ + return new FebsResponse().success().data(2); + } + Double distance = mallTeamLeader.getDistance(); + if(value <= distance){ + return new FebsResponse().success().data(2); + } + } + return new FebsResponse().success().data(1); + } + + private final IXcxPayService iXcxPayService; + + @Override + @Transactional(rollbackFor = Exception.class) + public FebsResponse rechargeWallet(ApiRechargeWalletDto apiRechargeWalletDto) { + Long memberId = LoginUserUtil.getLoginUser().getId(); + BigDecimal amount = apiRechargeWalletDto.getAmount(); + if(BigDecimal.ZERO.compareTo(amount)>0){ + return new FebsResponse().fail().message("请输入正确的充值金额"); + } + apiRechargeWalletDto.setMemberId(memberId); + BrandWCPayRequestData brandWCPayRequestData = null; + try { + brandWCPayRequestData = iXcxPayService.startRechargeWallet(apiRechargeWalletDto); + } catch (Exception e) { + throw new FebsException("支付失败"); + } + String wxResultStr = JSONUtil.toJsonStr(brandWCPayRequestData); + String payResultStr = brandWCPayRequestData.getPrepay_id(); + Map<String, Object> map = new HashMap<>(); + map.put("orderInfo", payResultStr); + map.put("wxResultStr", wxResultStr); + return new FebsResponse().success().data(map).message("充值即将到账"); + } + private String getXcxLoginUrl(String code) { String wechatLoginUrl =xcxProperties.getWecharLoginUrl(); return String.format(wechatLoginUrl, xcxProperties.getXcxAppid(), xcxProperties.getXcxSecret(), code); -- Gitblit v1.9.1