Commit 83d0bd6a02d2a851730cf76fabe0cd8d1d4c6212
1 parent
c5984e0d
[订单相关]
Showing
6 changed files
with
131 additions
and
86 deletions
src/main/java/com/diligrp/xtrade/order/dao/OrderItemDao.java
src/main/java/com/diligrp/xtrade/order/domain/builder/DefaultOrderBuilder.java
0 → 100644
1 | +package com.diligrp.xtrade.order.domain.builder; | |
2 | + | |
3 | +import java.math.BigDecimal; | |
4 | +import java.math.RoundingMode; | |
5 | +import java.util.List; | |
6 | + | |
7 | +import com.diligrp.xtrade.order.domain.dto.AccountDto; | |
8 | +import com.diligrp.xtrade.order.domain.dto.OrderItemDto; | |
9 | +import com.diligrp.xtrade.order.domain.dto.OrderQueryResponseDto; | |
10 | +import com.diligrp.xtrade.order.domain.emuns.OrderType; | |
11 | +import com.diligrp.xtrade.order.domain.emuns.SaleUnit; | |
12 | +import com.diligrp.xtrade.order.domain.emuns.TradeType; | |
13 | +import com.diligrp.xtrade.order.domain.entity.OrderDo; | |
14 | +import com.diligrp.xtrade.order.domain.entity.OrderItemDo; | |
15 | +import com.diligrp.xtrade.order.exception.OrderException; | |
16 | + | |
17 | +/** | |
18 | + * @ClassName: DefaultOrderCreator | |
19 | + * @Description 订单实体相关模型 | |
20 | + * @author zhangxing | |
21 | + * @date 2020年4月21日 | |
22 | + */ | |
23 | +public class DefaultOrderBuilder { | |
24 | + | |
25 | + /** | |
26 | + * 构建初始订单数据 | |
27 | + */ | |
28 | + public static OrderDo initializeOrderBaseData(Long orderId, AccountDto saccountDto, Integer createSrc) { | |
29 | + OrderDo order = new OrderDo(); | |
30 | + order.setOrderId(orderId); | |
31 | + order.setBaccount(saccountDto.getAccountId()); | |
32 | + order.setSname(saccountDto.getAccountName()); | |
33 | + order.setSmobile(saccountDto.getMobile()); | |
34 | + order.setScardType(saccountDto.getType()); | |
35 | + order.setCreatedSrc(createSrc); | |
36 | + order.setOrderType(OrderType.NORMAL.getCode()); | |
37 | + order.setTradeType(TradeType.NORMAL.getCode()); | |
38 | + order.setMarketCode("SYDEV"); | |
39 | + return order; | |
40 | + } | |
41 | + | |
42 | + /** | |
43 | + * 订单详情初始化数据 | |
44 | + */ | |
45 | + public static OrderItemDo initializeOrderItemDoData(Long itemId, Long orderId, OrderItemDto orderItem){ | |
46 | + OrderItemDo orderItemDo = new OrderItemDo(); | |
47 | + orderItemDo.setItemId(itemId); | |
48 | + orderItemDo.setOrderId(orderId); | |
49 | + orderItemDo.setProductId(orderItem.getPid()); | |
50 | + orderItemDo.setProductName(orderItem.getPname()); | |
51 | + // 销售单价 | |
52 | + BigDecimal price = BigDecimal.valueOf(orderItem.getPrice()); | |
53 | + // 销售数量 | |
54 | + BigDecimal amount = BigDecimal.valueOf(orderItem.getAmount()); | |
55 | + | |
56 | + orderItemDo.setAmount(orderItem.getAmount()); | |
57 | + | |
58 | + BigDecimal tempWeight = BigDecimal.valueOf(0.0D); | |
59 | + | |
60 | + if (SaleUnit.KILO.getCode() == orderItem.getSaleUnit()) { | |
61 | + tempWeight = BigDecimal.valueOf(orderItem.getAmount()); | |
62 | + } else if (SaleUnit.PIECE.getCode() == orderItem.getSaleUnit()) { | |
63 | + if (orderItem.getUnitWeight() == null || orderItem.getUnitWeight() < 0) { | |
64 | + throw new OrderException(String.format("%s件重非法", orderItem.getPname())); | |
65 | + } | |
66 | + BigDecimal dKiloPerItem = BigDecimal.valueOf(orderItem.getUnitWeight()); | |
67 | + tempWeight = amount.multiply(dKiloPerItem); | |
68 | + } | |
69 | + orderItemDo.setWeight(tempWeight.doubleValue()); | |
70 | + Long itemMoney = price.multiply(amount).setScale(0, RoundingMode.HALF_UP).longValue(); | |
71 | + orderItemDo.setMoney(itemMoney); | |
72 | + return orderItemDo; | |
73 | + } | |
74 | + | |
75 | + /** | |
76 | + * 构建基本的订单详情数据 | |
77 | + */ | |
78 | + public static OrderQueryResponseDto buildOrderDetail(OrderDo selectEntityByOrderId, | |
79 | + List<OrderItemDo> selectItemsByOrderId) { | |
80 | + OrderQueryResponseDto orderQueryResponseDto = new OrderQueryResponseDto(); | |
81 | + return orderQueryResponseDto; | |
82 | + } | |
83 | + | |
84 | +} | ... | ... |
src/main/java/com/diligrp/xtrade/order/domain/builder/DefaultOrderCreator.java deleted
100644 → 0
1 | -package com.diligrp.xtrade.order.domain.builder; | |
2 | - | |
3 | -import org.springframework.beans.BeanUtils; | |
4 | - | |
5 | -import com.diligrp.xtrade.order.domain.dto.AccountDto; | |
6 | -import com.diligrp.xtrade.order.domain.dto.OrderCreateRequestDto; | |
7 | -import com.diligrp.xtrade.order.domain.entity.OrderDo; | |
8 | - | |
9 | -/** | |
10 | - * @ClassName: DefaultOrderCreator | |
11 | - * @Description 订单实体相关模型 | |
12 | - * @author zhangxing | |
13 | - * @date 2020年4月21日 | |
14 | - */ | |
15 | -public class DefaultOrderCreator { | |
16 | - | |
17 | - //最终订单数据 | |
18 | - private OrderDo order; | |
19 | - | |
20 | - //订单创建请求实体 | |
21 | - private OrderCreateRequestDto orderCreateRequestDto; | |
22 | - | |
23 | - //卖家实体 | |
24 | - private AccountDto saccountDto; | |
25 | - | |
26 | - //买家实体 | |
27 | - private AccountDto baccountDto; | |
28 | - | |
29 | - //无参构造器 | |
30 | - public DefaultOrderCreator(){ | |
31 | - | |
32 | - } | |
33 | - | |
34 | - public DefaultOrderCreator(OrderCreateRequestDto orderCreateRequestDto, AccountDto saccountDto, AccountDto baccountDto){ | |
35 | - this.orderCreateRequestDto = orderCreateRequestDto; | |
36 | - this.baccountDto = baccountDto; | |
37 | - this.saccountDto = saccountDto; | |
38 | - } | |
39 | - | |
40 | - /** | |
41 | - * 初始化订单数据用于后面的校验 | |
42 | - */ | |
43 | - public void initialize() { | |
44 | - | |
45 | - } | |
46 | - | |
47 | - public OrderDo getOrder() { | |
48 | - return order; | |
49 | - } | |
50 | - | |
51 | - public void setOrder(OrderDo order) { | |
52 | - this.order = order; | |
53 | - } | |
54 | - | |
55 | - public OrderCreateRequestDto getOrderCreateRequestDto() { | |
56 | - return orderCreateRequestDto; | |
57 | - } | |
58 | - | |
59 | - public void setOrderCreateRequestDto(OrderCreateRequestDto orderCreateRequestDto) { | |
60 | - this.orderCreateRequestDto = orderCreateRequestDto; | |
61 | - } | |
62 | - | |
63 | - public AccountDto getSaccountDto() { | |
64 | - return saccountDto; | |
65 | - } | |
66 | - | |
67 | - public void setSaccountDto(AccountDto saccountDto) { | |
68 | - this.saccountDto = saccountDto; | |
69 | - } | |
70 | - | |
71 | - public AccountDto getBaccountDto() { | |
72 | - return baccountDto; | |
73 | - } | |
74 | - | |
75 | - public void setBaccountDto(AccountDto baccountDto) { | |
76 | - this.baccountDto = baccountDto; | |
77 | - } | |
78 | - | |
79 | - public static OrderDo build(OrderCreateRequestDto orderCreateRequestDto) { | |
80 | - OrderDo orderDo = new OrderDo(); | |
81 | - BeanUtils.copyProperties(orderCreateRequestDto, orderDo); | |
82 | - return orderDo; | |
83 | - } | |
84 | -} |
src/main/java/com/diligrp/xtrade/order/domain/entity/OrderDo.java
... | ... | @@ -70,6 +70,9 @@ public class OrderDo extends BaseDo{ |
70 | 70 | |
71 | 71 | //订单类型 |
72 | 72 | private Integer orderType; |
73 | + | |
74 | + //订单类型 | |
75 | + private Integer tradeType; | |
73 | 76 | |
74 | 77 | //支付方式 |
75 | 78 | private Integer payType; |
... | ... | @@ -263,6 +266,14 @@ public class OrderDo extends BaseDo{ |
263 | 266 | public void setOrderType(Integer orderType) { |
264 | 267 | this.orderType = orderType; |
265 | 268 | } |
269 | + | |
270 | + public Integer getTradeType() { | |
271 | + return tradeType; | |
272 | + } | |
273 | + | |
274 | + public void setTradeType(Integer tradeType) { | |
275 | + this.tradeType = tradeType; | |
276 | + } | |
266 | 277 | |
267 | 278 | |
268 | 279 | } | ... | ... |
src/main/java/com/diligrp/xtrade/order/rpc/feign/AccountResolver.java
0 → 100644
1 | +package com.diligrp.xtrade.order.rpc.feign; | |
2 | + | |
3 | +import javax.annotation.Resource; | |
4 | + | |
5 | +import org.springframework.http.HttpStatus; | |
6 | +import org.springframework.stereotype.Component; | |
7 | + | |
8 | +import com.diligrp.xtrade.order.domain.dto.AccountDto; | |
9 | +import com.diligrp.xtrade.order.exception.OrderException; | |
10 | +import com.diligrp.xtrade.shared.domain.Message; | |
11 | + | |
12 | +/** | |
13 | + * @ClassName: AccountResolver | |
14 | + * @Description 远程卡务调用解析 | |
15 | + * @author zhangxing | |
16 | + * @date 2020年4月22日 | |
17 | + */ | |
18 | +@Component | |
19 | +public class AccountResolver { | |
20 | + | |
21 | + @Resource | |
22 | + private AccountRPC accountRPC; | |
23 | + | |
24 | + /** | |
25 | + * 根据id获取账户信息 | |
26 | + */ | |
27 | + public AccountDto getAccount(Long accountId) { | |
28 | + Message<AccountDto> message = accountRPC.getDltAccount(accountId); | |
29 | + if (!HttpStatus.OK.equals(message.getCode())) { | |
30 | + throw new OrderException(message.getMessage()); | |
31 | + } | |
32 | + return message.getData(); | |
33 | + } | |
34 | +} | ... | ... |
src/main/resources/mapping/com/diligrp/xtrade/order/OrderItemDao.xml
... | ... | @@ -13,7 +13,7 @@ |
13 | 13 | VALUES (#{itemId}, #{orderId}, #{productName}, #{productId}, #{price}, #{amount}, #{saleUnit}, #{unitWeight}, #{scommission}, #{bcommission}, #{ruleid}, #{ruleRate}, #{}weight, #{totalMoney}, NOW(), NOW()); |
14 | 14 | </insert> |
15 | 15 | |
16 | - <select id="selectOrderItemByItemId" parameterType="long" resultType="orderItemDo"> | |
16 | + <select id="selectItemsByOrderId" parameterType="long" resultType="orderItemDo"> | |
17 | 17 | SELECT |
18 | 18 | <include refid="QUERY_COLUMN_LIST"/> |
19 | 19 | FROM `xt_order_item` | ... | ... |