From fd3a47d83dc6373275f8f6431b67b569f08e1428 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 05 Jun 2020 11:26:48 +0800 Subject: [PATCH] finish contract order history list interface --- src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderEntityMapper.java | 25 ++++++++ src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderListVo.java | 54 ++++++++++++++++++ src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderDetailVo.java | 6 ++ src/main/resources/mapper/contract/ContractOrderDao.xml | 6 ++ src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java | 13 ++++ src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java | 1 src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java | 10 ++- src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java | 4 + src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java | 2 9 files changed, 118 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java b/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java index 4593860..75b6fbe 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java +++ b/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java @@ -4,6 +4,7 @@ import com.xcong.excoin.modules.contract.parameter.dto.*; import com.xcong.excoin.modules.contract.parameter.vo.ContractMoneyInfoVo; import com.xcong.excoin.modules.contract.parameter.vo.HoldOrderListVo; +import com.xcong.excoin.modules.contract.parameter.vo.OrderListVo; import com.xcong.excoin.modules.contract.service.ContractHoldOrderService; import com.xcong.excoin.modules.contract.service.ContractOrderService; import com.xcong.excoin.rabbit.producer.OrderProducer; @@ -75,10 +76,13 @@ return contractHoldOrderService.changeBond(changeBondDto); } - @ApiOperation(value = "未完成--分页查询历史订单列表") - @GetMapping(value = "/findHistoryOrderList") + @ApiOperation(value = "分页查询历史订单列表") + @ApiResponses({ + @ApiResponse(code = 0, message = "success", response = OrderListVo.class) + }) + @PostMapping(value = "/findHistoryOrderList") public Result findHistoryOrderList(@RequestBody @Validated OrderListDto orderListDto) { - return null; + return contractHoldOrderService.findOrderList(orderListDto); } @ApiOperation(value = "获取合约页面资产信息") diff --git a/src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java b/src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java index 90694a5..4a1bd7d 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java +++ b/src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java @@ -1,10 +1,14 @@ package com.xcong.excoin.modules.contract.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xcong.excoin.modules.contract.entity.ContractOrderEntity; /** * @author helius */ public interface ContractOrderDao extends BaseMapper<ContractOrderEntity> { + + public IPage<ContractOrderEntity> selectContractOrderInPage(Page<ContractOrderEntity> page, Long memberId); } diff --git a/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java index 1f43211..2367df6 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java +++ b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java @@ -17,6 +17,7 @@ public static final ContractHoldOrderEntityMapper INSTANCE = Mappers.getMapper(ContractHoldOrderEntityMapper.class); @Mapping(target = "orderType", source = "openingType") + @Mapping(target = "openingTime", source = "createTime") public abstract ContractOrderEntity holdOrderToOrder(ContractHoldOrderEntity holdOrderEntity); public abstract HoldOrderListVo holdOrderToDto(ContractHoldOrderEntity holdOrderEntity); diff --git a/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderEntityMapper.java b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderEntityMapper.java new file mode 100644 index 0000000..d77d2ab --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderEntityMapper.java @@ -0,0 +1,25 @@ +package com.xcong.excoin.modules.contract.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xcong.excoin.modules.contract.entity.ContractOrderEntity; +import com.xcong.excoin.modules.contract.parameter.vo.OrderListVo; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * @author wzy + * @date 2020-06-05 + **/ +@Mapper +public abstract class ContractOrderEntityMapper { + public static final ContractOrderEntityMapper INSTANCE = Mappers.getMapper(ContractOrderEntityMapper.class); + + public abstract OrderListVo orderEntityToOrderListVo(ContractOrderEntity orderEntity); + + public abstract List<OrderListVo> orderEntitiesToOrderListVo(List<ContractOrderEntity> orderEntities); + + public abstract Page<OrderListVo> pageEntityToPageVo(IPage<ContractOrderEntity> orderEntityIPage); +} diff --git a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderDetailVo.java b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderDetailVo.java index 8245d48..12cc92c 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderDetailVo.java +++ b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderDetailVo.java @@ -1,11 +1,13 @@ package com.xcong.excoin.modules.contract.parameter.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; +import java.util.Date; /** * @author wzy @@ -39,6 +41,10 @@ @ApiModelProperty("开仓手续费") private BigDecimal openingFeeAmount; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty("开仓时间") + private Date openingTime; + @ApiModelProperty("保证金") private BigDecimal bondAmount; diff --git a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderListVo.java b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderListVo.java new file mode 100644 index 0000000..573d040 --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderListVo.java @@ -0,0 +1,54 @@ +package com.xcong.excoin.modules.contract.parameter.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author wzy + * @date 2020-06-05 + **/ +@Data +@ApiModel(value = "OrderListVo", description = "历史委托订单接口返回参数类") +public class OrderListVo { + + @ApiModelProperty("订单类型 -1撤单,1开多,2开空,3平多,4平空") + private int orderType; + + @ApiModelProperty("开仓均价") + private BigDecimal openingPrice; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty("开仓价") + private Date openingTime; + + @ApiModelProperty("开仓手续费") + private BigDecimal openingFeeAmount; + + @ApiModelProperty("保证金") + private BigDecimal bondAmount; + + @ApiModelProperty("张数") + private int symbolCnt; + + @ApiModelProperty("已实现盈亏") + private BigDecimal rewardRatio; + + @ApiModelProperty("平仓类型 2平多3平空4爆仓平多5爆仓平空6止盈平多7止盈平空8止损平多9止损平空") + private int closingType; + + @ApiModelProperty("平仓手续费") + private BigDecimal closingFeeAmount; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty("平仓时间") + private Date closingTime; + + @ApiModelProperty("强平价") + private BigDecimal forceClosingPrice; + +} diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java b/src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java index 0e54fbc..5498034 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java +++ b/src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java @@ -38,4 +38,6 @@ public Result findHoldOrderDetailById(Long id); + public Result findOrderList(OrderListDto orderListDto); + } diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java index f8b8a19..796710d 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java @@ -3,6 +3,8 @@ import cn.hutool.core.collection.CollUtil; import com.alibaba.druid.sql.visitor.functions.If; import com.alibaba.fastjson.JSONObject; +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.LoginUserUtils; import com.xcong.excoin.common.enumerates.CoinTypeEnum; @@ -16,10 +18,12 @@ import com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity; import com.xcong.excoin.modules.contract.entity.ContractOrderEntity; import com.xcong.excoin.modules.contract.mapper.ContractHoldOrderEntityMapper; +import com.xcong.excoin.modules.contract.mapper.ContractOrderEntityMapper; import com.xcong.excoin.modules.contract.parameter.dto.*; import com.xcong.excoin.modules.contract.parameter.vo.ContractMoneyInfoVo; import com.xcong.excoin.modules.contract.parameter.vo.HoldOrderDetailVo; import com.xcong.excoin.modules.contract.parameter.vo.HoldOrderListVo; +import com.xcong.excoin.modules.contract.parameter.vo.OrderListVo; import com.xcong.excoin.modules.contract.service.ContractHoldOrderService; import com.xcong.excoin.modules.member.dao.MemberLevelRateDao; import com.xcong.excoin.modules.member.dao.MemberWalletContractDao; @@ -537,4 +541,13 @@ HoldOrderDetailVo holdOrderDetailVo = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrderDetailVo(holdOrderEntity); return Result.ok(holdOrderDetailVo); } + + @Override + public Result findOrderList(OrderListDto orderListDto) { + MemberEntity memberEntity = LoginUserUtils.getAppLoginUser(); + Page<ContractOrderEntity> page = new Page<>(orderListDto.getPageNum(), orderListDto.getPageSize()); + IPage<ContractOrderEntity> list = contractOrderDao.selectContractOrderInPage(page, memberEntity.getId()); + Page<OrderListVo> result = ContractOrderEntityMapper.INSTANCE.pageEntityToPageVo(list); + return Result.ok(result); + } } diff --git a/src/main/resources/mapper/contract/ContractOrderDao.xml b/src/main/resources/mapper/contract/ContractOrderDao.xml index 9e08e1f..d98a8d3 100644 --- a/src/main/resources/mapper/contract/ContractOrderDao.xml +++ b/src/main/resources/mapper/contract/ContractOrderDao.xml @@ -2,4 +2,10 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xcong.excoin.modules.contract.dao.ContractOrderDao"> + + <select id="selectContractOrderInPage" resultType="com.xcong.excoin.modules.contract.entity.ContractOrderEntity"> + select * from contract_order where member_id=#{memberId} + order by create_time desc + </select> + </mapper> \ No newline at end of file -- Gitblit v1.9.1