package com.xcong.excoin.modules.member.service.impl;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.xcong.excoin.common.entity.FebsResponse;
|
import com.xcong.excoin.common.entity.QueryRequest;
|
import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity;
|
import com.xcong.excoin.modules.member.entity.MemberEntity;
|
import com.xcong.excoin.modules.member.entity.MemberQuickBuySaleEntity;
|
import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity;
|
import com.xcong.excoin.modules.member.mapper.MemberAccountMoneyChangeMapper;
|
import com.xcong.excoin.modules.member.mapper.MemberMapper;
|
import com.xcong.excoin.modules.member.mapper.MemberQuickBuySaleMapper;
|
import com.xcong.excoin.modules.member.mapper.MemberWalletCoinMapper;
|
import com.xcong.excoin.modules.member.service.IMemberService;
|
import com.xcong.excoin.modules.member.vo.MemberQuickBuySaleVo;
|
|
import lombok.RequiredArgsConstructor;
|
import java.math.BigDecimal;
|
import javax.validation.constraints.NotNull;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
/**
|
* @author wzy
|
* @date 2020-06-10
|
**/
|
@Service
|
@RequiredArgsConstructor
|
public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberEntity> implements IMemberService {
|
|
private final MemberQuickBuySaleMapper memberQuickBuySaleMapper;
|
|
private final MemberWalletCoinMapper memberWalletCoinMapper;
|
|
private final MemberAccountMoneyChangeMapper memberAccountMoneyChangeMapper;
|
|
|
@Override
|
public IPage<MemberEntity> findMemberListInPage(MemberEntity memberEntity, QueryRequest request) {
|
Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
|
return this.baseMapper.selectMemberListInPage(page, memberEntity);
|
}
|
|
@Override
|
public IPage<MemberQuickBuySaleVo> findmemberQuickBuySaleListInPage(
|
MemberQuickBuySaleEntity memberQuickBuySaleEntity, QueryRequest request) {
|
Page<MemberQuickBuySaleEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<MemberQuickBuySaleVo> findmemberQuickBuySaleListInPage = memberQuickBuySaleMapper.findmemberQuickBuySaleListInPage(page, memberQuickBuySaleEntity);
|
return findmemberQuickBuySaleListInPage;
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public FebsResponse memberChargeUsdtConfirm(Long id) {
|
|
MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleMapper.selectById(id);
|
|
if(!MemberQuickBuySaleEntity.CHARGE_STATUS_PAID.equals(memberQuickBuySaleEntity.getOrderStatus())) {
|
return new FebsResponse().message("只允许已付款状态操作");
|
}
|
|
Long memberId = memberQuickBuySaleEntity.getMemberId();
|
BigDecimal amountUsdt = memberQuickBuySaleEntity.getAmountUsdt();
|
String walletCode = "USDT";
|
|
MemberEntity selectById = this.baseMapper.selectById(memberId);
|
if(ObjectUtils.isEmpty(selectById)) {
|
return new FebsResponse().message("用户已不存在");
|
}
|
//获取币币钱包
|
MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId,walletCode);
|
BigDecimal availableBalance = memberWalletCoinEntity.getAvailableBalance();
|
BigDecimal totalBalance = memberWalletCoinEntity.getTotalBalance();
|
memberWalletCoinEntity.setAvailableBalance(availableBalance.add(amountUsdt));
|
memberWalletCoinEntity.setTotalBalance(totalBalance.add(amountUsdt));
|
// 更新
|
memberWalletCoinMapper.updateById(memberWalletCoinEntity);
|
// 更新状态
|
memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CHECKED);
|
memberQuickBuySaleMapper.updateById(memberQuickBuySaleEntity);
|
|
//添加币币资金划转历史记录
|
MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity();
|
memberAccountMoneyChangeEntity.setContent("OTC转入");
|
memberAccountMoneyChangeEntity.setMemberId(memberId);
|
memberAccountMoneyChangeEntity.setAmount(amountUsdt);
|
memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER);
|
memberAccountMoneyChangeEntity.setSymbol("USDT");
|
memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN);
|
memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity);
|
/**
|
* todo
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
String chargeTime = format.format(memberQuickBuySaleEntity.getChargeTime()); // 将当前时间袼式化为指定的格式
|
String usdt = memberQuickBuySaleEntity.getAmountUsdt()+"USDT";
|
//发送短信提醒
|
String smsContent = "【Excoin】尊敬的用户您好!您于"+chargeTime+"充值"+usdt+"已成功到账,请您及时查收!订单号为:"+memberChargeUsdt.getOrderCode()+"。";
|
SmsUtils.hxSmsSend(member.getPhone(), smsContent);
|
|
*/
|
return new FebsResponse().message("拨币成功");
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public FebsResponse memberChargeUsdtCancel(@NotNull(message = "{required}") Long id) {
|
|
MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleMapper.selectById(id);
|
|
if(MemberQuickBuySaleEntity.CHARGE_STATUS_CHECKED.equals(memberQuickBuySaleEntity.getOrderStatus())
|
|| MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_USER.equals(memberQuickBuySaleEntity.getOrderStatus())
|
|| MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_SYSTEM.equals(memberQuickBuySaleEntity.getOrderStatus())) {
|
return new FebsResponse().message("不允许系统撤单操作");
|
}
|
|
memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_SYSTEM);
|
memberQuickBuySaleMapper.updateById(memberQuickBuySaleEntity);
|
return new FebsResponse().success();
|
|
}
|
}
|