| | |
| | | //微信订阅模板ID, |
| | | // 微信订单通知 |
| | | // WX_TEMPLATE_ID_ONE("WX_TEMPLATE", "WX_TEMPLATE_ID_ONE"), |
| | | // 成为合伙人的充值金额 |
| | | PRICE_AMOUNT("AGENT_PRICE", "PRICE_AMOUNT"), |
| | | // 充值到账通知 |
| | | WX_TEMPLATE_ID_TWO("WX_TEMPLATE", "WX_TEMPLATE_ID_TWO"), |
| | | // 提货通知 |
| | |
| | | @ApiModel(value = "ApiRechargeWalletDto", description = "余额充值接收类") |
| | | public class ApiRechargeWalletDto { |
| | | |
| | | @ApiModelProperty(value = "1:普通充值 2:合伙人充值", example = "10") |
| | | private Integer type; |
| | | |
| | | @ApiModelProperty(value = "充值金额", example = "10") |
| | | private BigDecimal amount; |
| | | |
| | |
| | | MallAgentRecord selectByMemberIdAndState(@Param("memberId")Long memberId, @Param("state")Integer applyIng); |
| | | |
| | | IPage<MallAgentRecord> selectMallAgentRecordListInPage(Page<MallAgentRecord> page, @Param("record")MallAgentRecord mallAgentRecord); |
| | | |
| | | void updateStateByMemberId(@Param("memberId")Long memberId); |
| | | |
| | | void deleteByMemberIdAndState(@Param("memberId")Long memberId, @Param("state")Integer applyIng); |
| | | } |
| | |
| | | FebsResponse xcxOpen(ApiXcxOpenDto apiXcxOpenDto); |
| | | |
| | | FebsResponse rechargeWallet(ApiRechargeWalletDto apiRechargeWalletDto); |
| | | |
| | | void updateMemberAgent(Long memberId); |
| | | } |
| | |
| | | import cc.mrbird.febs.mall.mapper.MallMemberMapper; |
| | | import cc.mrbird.febs.mall.service.IApiMallAgentService; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | //判断用户是否正在申请 |
| | | MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectByMemberIdAndState(memberId,MallAgentRecord.APPLY_ING); |
| | | if(ObjectUtil.isNotEmpty(mallAgentRecord)){ |
| | | return new FebsResponse().fail().message("用户已申请"); |
| | | mallAgentRecordMapper.deleteByMemberIdAndState(memberId,MallAgentRecord.APPLY_ING); |
| | | } |
| | | |
| | | MallAgentRecord mallAgentRecordNew = MallAgentRecordConversion.INSTANCE.dtoToEntity(apiAgentApplyDto); |
| | |
| | | if(BigDecimal.ZERO.compareTo(amount)>0){ |
| | | return new FebsResponse().fail().message("请输入正确的充值金额"); |
| | | } |
| | | 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){ |
| | | return new FebsResponse().fail().message("成为合伙人的金额为"+agentPrice); |
| | | } |
| | | } |
| | | |
| | | apiRechargeWalletDto.setMemberId(memberId); |
| | | BrandWCPayRequestData brandWCPayRequestData = null; |
| | | try { |
| | |
| | | return new FebsResponse().success().data(map).message("充值即将到账"); |
| | | } |
| | | |
| | | @Override |
| | | public void updateMemberAgent(Long memberId) { |
| | | mallAgentRecordMapper.updateStateByMemberId(memberId); |
| | | |
| | | //更新用户表中的LEVEL |
| | | MallMember mallMember = this.baseMapper.selectById(memberId); |
| | | mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name()); |
| | | this.baseMapper.updateById(mallMember); |
| | | } |
| | | |
| | | private String getXcxLoginUrl(String code) { |
| | | String wechatLoginUrl =xcxProperties.getWecharLoginUrl(); |
| | | return String.format(wechatLoginUrl, xcxProperties.getXcxAppid(), xcxProperties.getXcxSecret(), code); |
| | |
| | | import cc.mrbird.febs.mall.entity.MallMoneyFlow; |
| | | import cc.mrbird.febs.mall.entity.MallOrderInfo; |
| | | import cc.mrbird.febs.mall.mapper.*; |
| | | import cc.mrbird.febs.mall.service.IApiMallMemberService; |
| | | import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; |
| | | import cc.mrbird.febs.pay.model.NotifyData; |
| | | import cc.mrbird.febs.pay.model.OrderStateDto; |
| | |
| | | RedisUtils redisUtils; |
| | | @Autowired |
| | | private IApiMallMemberWalletService memberWalletService; |
| | | @Autowired |
| | | private IApiMallMemberService mallMemberService; |
| | | |
| | | @Autowired |
| | | private IXcxPayService iXcxPayService; |
| | |
| | | attrStr = data.getAttach(); |
| | | JSONObject jsonObject = JSONUtil.parseObj(attrStr); |
| | | String rechargeNo = (String) jsonObject.get("rechargeNo"); |
| | | Integer type = (Integer) jsonObject.get("type"); |
| | | Long memberId = Long.parseLong(jsonObject.get("memberId").toString()); |
| | | // 检验订单状态 |
| | | MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOneByOrderNoAndMemberId(rechargeNo,memberId); |
| | |
| | | |
| | | if (ObjectUtil.isNotEmpty(mallMoneyFlow)) { |
| | | log.debug("检查支付金额payMoney={},mallMoneyFlow.getPayMoney()={}", payMoney, mallMoneyFlow.getAmount()); |
| | | if(2 == type){ |
| | | mallMemberService.updateMemberAgent(memberId); |
| | | } |
| | | memberWalletService.addBalance(payMoney,memberId); |
| | | mallMoneyFlow.setStatus(2); |
| | | mallMoneyFlowMapper.updateById(mallMoneyFlow); |
| | |
| | | MallMember mallMember = mallMemberMapper.selectById(apiRechargeWalletDto.getMemberId()); |
| | | String rechargeNo = "CZ_"+MallUtils.getOrderNum(); |
| | | Boolean debug = xcxProperties.getDebug(); |
| | | String attrStr = "{'rechargeNo':"+rechargeNo+",'memberId':"+mallMember.getId()+"}"; |
| | | String attrStr = "{'rechargeNo':"+rechargeNo+",'memberId':"+mallMember.getId()+",'type':"+apiRechargeWalletDto.getType()+"}"; |
| | | if (debug) { |
| | | payData = weixinServiceUtil.createRechargeWallet("[测试]" + productNames, rechargeNo, |
| | | 1, mallMember.getOpenId(), attrStr); |
| | |
| | | GROUP BY a.id order by a.CREATED_TIME desc |
| | | </select> |
| | | |
| | | <update id="updateStateByMemberId"> |
| | | update mall_agent_record |
| | | set state = 2 |
| | | where member_id = #{memberId} |
| | | </update> |
| | | |
| | | <delete id="deleteByMemberIdAndState"> |
| | | delete from mall_agent_record |
| | | where member_id = #{memberId} and state = #{state} |
| | | </delete> |
| | | |
| | | </mapper> |