package com.xcong.excoin.modules.otc.service.impl;
|
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
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.MemberWalletCoinEntity;
|
import com.xcong.excoin.modules.member.mapper.MemberMapper;
|
import com.xcong.excoin.modules.member.mapper.MemberWalletCoinMapper;
|
import com.xcong.excoin.modules.otc.entity.OtcEntrustOrderEntity;
|
import com.xcong.excoin.modules.otc.entity.OtcMarketBussinessEntity;
|
import com.xcong.excoin.modules.otc.entity.OtcOrderAppealEntity;
|
import com.xcong.excoin.modules.otc.entity.OtcOrderEntity;
|
import com.xcong.excoin.modules.otc.mapper.OtcEntrustOrderMapper;
|
import com.xcong.excoin.modules.otc.mapper.OtcMarketBussinessMapper;
|
import com.xcong.excoin.modules.otc.mapper.OtcOrderAppealMapper;
|
import com.xcong.excoin.modules.otc.mapper.OtcOrderMapper;
|
import com.xcong.excoin.modules.otc.service.OtcService;
|
import com.xcong.excoin.modules.otc.vo.OtcAppealInfoVo;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.annotation.Resource;
|
import java.math.BigDecimal;
|
import java.util.Date;
|
import java.util.List;
|
|
@Service
|
@RequiredArgsConstructor
|
public class OtcServiceImpl extends ServiceImpl<OtcMarketBussinessMapper, OtcMarketBussinessEntity> implements OtcService {
|
|
@Resource
|
private OtcMarketBussinessMapper otcMarketBussinessMapper;
|
@Resource
|
private OtcOrderAppealMapper otcOrderAppealMapper;
|
@Resource
|
private OtcEntrustOrderMapper otcEntrustOrderMapper;
|
@Resource
|
private OtcOrderMapper otcOrderMapper;
|
@Resource
|
private MemberWalletCoinMapper memberWalletCoinMapper;
|
@Resource
|
private MemberMapper memberMapper;
|
|
@Override
|
public IPage<OtcMarketBussinessEntity> otcShopList(OtcMarketBussinessEntity otcMarketBussinessEntity, QueryRequest request) {
|
Page<OtcMarketBussinessEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<OtcMarketBussinessEntity> otcMarketBussinessEntitys = otcMarketBussinessMapper.otcShopList(page, otcMarketBussinessEntity);
|
return otcMarketBussinessEntitys;
|
}
|
|
@Override
|
@Transactional
|
public FebsResponse agreeShop(Long id) {
|
OtcMarketBussinessEntity otcMarketBussinessEntity = otcMarketBussinessMapper.selectById(id);
|
Integer status = otcMarketBussinessEntity.getStatus();
|
if(OtcMarketBussinessEntity.STATUS_ONE != status){
|
return new FebsResponse().fail().message("当前状态不是待审核");
|
}
|
otcMarketBussinessEntity.setStatus(OtcMarketBussinessEntity.STATUS_TWO);
|
otcMarketBussinessMapper.updateById(otcMarketBussinessEntity);
|
|
long memberId = otcMarketBussinessEntity.getMemberId();
|
MemberEntity memberEntity = memberMapper.selectById(memberId);
|
memberEntity.setIsTrader(MemberEntity.ISTRADER_Y);
|
memberMapper.updateById(memberEntity);
|
return new FebsResponse().success();
|
}
|
|
@Override
|
@Transactional
|
public FebsResponse disagreeShop(Long id) {
|
OtcMarketBussinessEntity otcMarketBussinessEntity = otcMarketBussinessMapper.selectById(id);
|
Integer status = otcMarketBussinessEntity.getStatus();
|
if(OtcMarketBussinessEntity.STATUS_ONE != status){
|
return new FebsResponse().fail().message("当前状态不是待审核");
|
}
|
otcMarketBussinessEntity.setStatus(OtcMarketBussinessEntity.STATUS_THREE);
|
otcMarketBussinessMapper.updateById(otcMarketBussinessEntity);
|
|
long memberId = otcMarketBussinessEntity.getMemberId();
|
MemberEntity memberEntity = memberMapper.selectById(memberId);
|
memberEntity.setIsTrader(MemberEntity.ISTRADER_Y);
|
memberMapper.updateById(memberEntity);
|
return new FebsResponse().success();
|
}
|
|
@Override
|
public IPage<OtcOrderAppealEntity> otcAppealList(OtcOrderAppealEntity otcOrderAppealEntity, QueryRequest request) {
|
Page<OtcOrderAppealEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<OtcOrderAppealEntity> otcOrderAppealEntitys = otcOrderAppealMapper.otcAppealList(page, otcOrderAppealEntity);
|
return otcOrderAppealEntitys;
|
}
|
|
@Override
|
@Transactional
|
public FebsResponse dealDone(Long id) {
|
OtcOrderAppealEntity otcOrderAppealEntity = otcOrderAppealMapper.selectById(id);
|
Integer status = otcOrderAppealEntity.getStatus();
|
if(OtcOrderAppealEntity.STATUS_TWO != status){
|
return new FebsResponse().fail().message("当前状态不是处理中");
|
}
|
|
otcOrderAppealEntity.setStatus(OtcOrderAppealEntity.STATUS_THREE);
|
otcOrderAppealMapper.updateById(otcOrderAppealEntity);
|
return new FebsResponse().success();
|
}
|
|
@Override
|
@Transactional
|
public FebsResponse dealIng(Long id) {
|
OtcOrderAppealEntity otcOrderAppealEntity = otcOrderAppealMapper.selectById(id);
|
Integer status = otcOrderAppealEntity.getStatus();
|
if(OtcOrderAppealEntity.STATUS_ONE != status){
|
return new FebsResponse().fail().message("当前状态不是待处理");
|
}
|
|
otcOrderAppealEntity.setStatus(OtcOrderAppealEntity.STATUS_TWO);
|
otcOrderAppealMapper.updateById(otcOrderAppealEntity);
|
return new FebsResponse().success();
|
}
|
|
@Override
|
public IPage<OtcEntrustOrderEntity> otcEntrustList(OtcEntrustOrderEntity otcEntrustOrderEntity, QueryRequest request) {
|
Page<OtcEntrustOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<OtcEntrustOrderEntity> otcEntrustOrderEntitys = otcEntrustOrderMapper.otcEntrustList(page, otcEntrustOrderEntity);
|
return otcEntrustOrderEntitys;
|
}
|
|
@Override
|
public IPage<OtcOrderEntity> otcOrderList(OtcOrderEntity otcOrderEntity, QueryRequest request) {
|
Page<OtcOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<OtcOrderEntity> otcOrderEntitys = otcOrderMapper.otcOrderList(page, otcOrderEntity);
|
return otcOrderEntitys;
|
}
|
|
@Override
|
public OtcAppealInfoVo otcAppealInfo(long id) {
|
OtcAppealInfoVo otcAppealInfoVo = new OtcAppealInfoVo();
|
|
OtcOrderAppealEntity otcOrderAppealEntity = otcOrderAppealMapper.selectById(id);
|
otcAppealInfoVo.setId(id);
|
if(ObjectUtil.isNotEmpty(otcOrderAppealEntity)){
|
String reason = otcOrderAppealEntity.getReason();
|
otcAppealInfoVo.setReason(reason);
|
String content = otcOrderAppealEntity.getContent();
|
otcAppealInfoVo.setContent(content);
|
}
|
//获取对应的订单详情
|
long orderId = otcOrderAppealEntity.getOrderId();
|
OtcOrderEntity otcOrderEntity = otcOrderMapper.selectById(orderId);
|
if(ObjectUtil.isNotEmpty(otcOrderEntity)){
|
String orderNo = otcOrderEntity.getOrderNo();
|
otcAppealInfoVo.setOrderNo(orderNo);
|
BigDecimal unitPrice = otcOrderEntity.getUnitPrice();
|
otcAppealInfoVo.setUnitPrice(unitPrice);
|
BigDecimal coinAmount = otcOrderEntity.getCoinAmount();
|
otcAppealInfoVo.setCoinAmount(coinAmount);
|
BigDecimal totalAmount = otcOrderEntity.getTotalAmount();
|
otcAppealInfoVo.setTotalAmount(totalAmount);
|
Integer status = otcOrderEntity.getStatus();
|
otcAppealInfoVo.setStatus(status);
|
Date payTime = otcOrderEntity.getPayTime();
|
otcAppealInfoVo.setPayTime(payTime);
|
Date finishTime = otcOrderEntity.getFinishTime();
|
otcAppealInfoVo.setFinishTime(finishTime);
|
}
|
//获取对应的商户信息
|
long payMdId = otcOrderEntity.getPayMbId();
|
OtcMarketBussinessEntity otcMarketBussinessEntity = otcMarketBussinessMapper.selectById(payMdId);
|
if(ObjectUtil.isNotEmpty(otcMarketBussinessEntity)){
|
String nikename = otcMarketBussinessEntity.getNikename();
|
otcAppealInfoVo.setNikename(nikename);
|
}
|
return otcAppealInfoVo;
|
}
|
|
@Override
|
public OtcOrderEntity otcOrderInfo(long id) {
|
OtcOrderEntity otcOrderEntity = otcOrderMapper.selectById(id);
|
return otcOrderEntity;
|
}
|
|
@Override
|
@Transactional
|
public FebsResponse updateOrderInfo(OtcOrderEntity otcOrderEntity) {
|
Long id = otcOrderEntity.getId();
|
OtcOrderEntity otcOrder = otcOrderMapper.selectById(id);
|
if(ObjectUtil.isEmpty(otcOrder)){
|
return new FebsResponse().fail().message("连接超时,请刷新页面重试");
|
}
|
Integer status = otcOrder.getStatus();
|
if(OtcOrderEntity.STATUS_ONE != status){
|
return new FebsResponse().fail().message("当前订单不是待付款状态");
|
}
|
String payName = otcOrderEntity.getPayName();
|
if(StrUtil.isEmpty(payName)){
|
return new FebsResponse().fail().message("请输入付款人");
|
}
|
BigDecimal coinAmount = otcOrderEntity.getCoinAmount();
|
/**
|
* 获取订单信息--订单编号
|
* 获取买单和买单
|
* 更新payName字段
|
* 更新订单状态
|
*/
|
QueryWrapper<OtcOrderEntity> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("order_no",otcOrder.getOrderNo());
|
List<OtcOrderEntity> list = otcOrderMapper.selectList(queryWrapper);
|
if(CollUtil.isNotEmpty(list)){
|
for(OtcOrderEntity order : list){
|
order.setStatus(OtcOrderEntity.STATUS_TWO);
|
order.setPayName(payName);
|
order.setPayTime(DateUtil.date());
|
otcOrderMapper.updateById(order);
|
}
|
}
|
return new FebsResponse().success();
|
}
|
|
}
|