|  |  |  | 
|---|
|  |  |  | package com.doumee.service.business.impl; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONObject; | 
|---|
|  |  |  | import com.doumee.config.wx.SendWxMessage; | 
|---|
|  |  |  | import com.doumee.config.wx.TransferToUser; | 
|---|
|  |  |  | import com.doumee.config.wx.WXPayUtility; | 
|---|
|  |  |  | import com.doumee.config.wx.WxMiniConfig; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.doumee.core.exception.BusinessException; | 
|---|
|  |  |  | import com.doumee.core.model.PageData; | 
|---|
|  |  |  | import com.doumee.core.model.PageWrap; | 
|---|
|  |  |  | import com.doumee.core.utils.DateUtil; | 
|---|
|  |  |  | import com.doumee.core.utils.Utils; | 
|---|
|  |  |  | import com.doumee.dao.business.MemberMapper; | 
|---|
|  |  |  | import com.doumee.dao.business.MemberRevenueMapper; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private MemberRevenueMapper memberRevenueMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SendWxMessage sendWxMessage; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public Integer create(WithdrawalOrders withdrawalOrders) { | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void transferSuccess(String outBillNo,Boolean isSuccess){ | 
|---|
|  |  |  | //转账成功 | 
|---|
|  |  |  | if(isSuccess){ | 
|---|
|  |  |  | withdrawalOrdersMapper.update(new UpdateWrapper<WithdrawalOrders>().lambda() | 
|---|
|  |  |  | .set(WithdrawalOrders::getStatus,Constants.ONE) | 
|---|
|  |  |  | .eq(WithdrawalOrders::getOutBillNo,outBillNo) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | WithdrawalOrders withdrawalOrders = withdrawalOrdersMapper.selectOne(new QueryWrapper<WithdrawalOrders>().lambda() | 
|---|
|  |  |  | .eq(WithdrawalOrders::getOutBillNo,outBillNo).last("limit 1")); | 
|---|
|  |  |  | if(Objects.isNull(withdrawalOrders)){ | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Member member = memberMapper.selectById(withdrawalOrders.getMemberId()); | 
|---|
|  |  |  | if(Objects.isNull(member)){ | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //更新用户余额 | 
|---|
|  |  |  | memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" AMOUNT = AMOUNT +  " + withdrawalOrders.getAmount() ).eq(Member::getId,withdrawalOrders.getMemberId())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //存储流水记录 | 
|---|
|  |  |  | MemberRevenue memberRevenue = new MemberRevenue(); | 
|---|
|  |  |  | memberRevenue.setCreateTime(new Date()); | 
|---|
|  |  |  | memberRevenue.setTransactionNo(withdrawalOrders.getOutBillNo()); | 
|---|
|  |  |  | memberRevenue.setDeleted(Constants.ZERO); | 
|---|
|  |  |  | memberRevenue.setMemberId(withdrawalOrders.getMemberId()); | 
|---|
|  |  |  | memberRevenue.setType(Constants.FOUR); | 
|---|
|  |  |  | memberRevenue.setOptType(Constants.ONE); | 
|---|
|  |  |  | memberRevenue.setBeforeAmount(member.getAmount()); | 
|---|
|  |  |  | memberRevenue.setAmount(withdrawalOrders.getAmount()); | 
|---|
|  |  |  | memberRevenue.setAfterAmount(member.getAmount() + withdrawalOrders.getAmount()); | 
|---|
|  |  |  | memberRevenue.setObjId(withdrawalOrders.getId()); | 
|---|
|  |  |  | memberRevenue.setRemark(Constants.RevenueType.getInfo(memberRevenue.getType())); | 
|---|
|  |  |  | memberRevenue.setObjType(Constants.ONE); | 
|---|
|  |  |  | memberRevenue.setDeleted(Constants.ZERO); | 
|---|
|  |  |  | memberRevenue.setStatus(Constants.ZERO); | 
|---|
|  |  |  | memberRevenueMapper.insert(memberRevenue); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | WithdrawalOrders withdrawalOrders = withdrawalOrdersMapper.selectOne(new QueryWrapper<WithdrawalOrders>().lambda() | 
|---|
|  |  |  | .eq(WithdrawalOrders::getOutBillNo,outBillNo).last("limit 1")); | 
|---|
|  |  |  | Member member = memberMapper.selectById(withdrawalOrders.getMemberId()); | 
|---|
|  |  |  | if(Objects.isNull(member)){ | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(Objects.nonNull(withdrawalOrders)){ | 
|---|
|  |  |  | //转账成功 | 
|---|
|  |  |  | if(isSuccess){ | 
|---|
|  |  |  | withdrawalOrdersMapper.update(new UpdateWrapper<WithdrawalOrders>().lambda() | 
|---|
|  |  |  | .set(WithdrawalOrders::getStatus,Constants.ONE) | 
|---|
|  |  |  | .set(WithdrawalOrders::getUpdateTime, DateUtil.getCurrDateTime()) | 
|---|
|  |  |  | .eq(WithdrawalOrders::getOutBillNo,outBillNo) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | withdrawalOrders.setUpdateTime(new Date()); | 
|---|
|  |  |  | sendWxMessage.withdrawalMessage(member.getOpenid(),withdrawalOrders); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | //更新用户余额 | 
|---|
|  |  |  | memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" AMOUNT = AMOUNT +  " + withdrawalOrders.getAmount() ).eq(Member::getId,withdrawalOrders.getMemberId())); | 
|---|
|  |  |  | //存储流水记录 | 
|---|
|  |  |  | MemberRevenue memberRevenue = new MemberRevenue(); | 
|---|
|  |  |  | memberRevenue.setCreateTime(new Date()); | 
|---|
|  |  |  | memberRevenue.setTransactionNo(withdrawalOrders.getOutBillNo()); | 
|---|
|  |  |  | memberRevenue.setDeleted(Constants.ZERO); | 
|---|
|  |  |  | memberRevenue.setMemberId(withdrawalOrders.getMemberId()); | 
|---|
|  |  |  | memberRevenue.setType(Constants.FOUR); | 
|---|
|  |  |  | memberRevenue.setOptType(Constants.ONE); | 
|---|
|  |  |  | memberRevenue.setBeforeAmount(member.getAmount()); | 
|---|
|  |  |  | memberRevenue.setAmount(withdrawalOrders.getAmount()); | 
|---|
|  |  |  | memberRevenue.setAfterAmount(member.getAmount() + withdrawalOrders.getAmount()); | 
|---|
|  |  |  | memberRevenue.setObjId(withdrawalOrders.getId()); | 
|---|
|  |  |  | memberRevenue.setRemark(Constants.RevenueType.getInfo(memberRevenue.getType())); | 
|---|
|  |  |  | memberRevenue.setObjType(Constants.ONE); | 
|---|
|  |  |  | memberRevenue.setDeleted(Constants.ZERO); | 
|---|
|  |  |  | memberRevenue.setStatus(Constants.ZERO); | 
|---|
|  |  |  | memberRevenueMapper.insert(memberRevenue); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|