Commit b81c0d19 authored by 黎博's avatar 黎博

/api/order/submitOrder接口返回由JSONObject改成java对象

parent 216d1ba3
......@@ -44,9 +44,10 @@ public class OrderController {
* @return
*/
@PostMapping("/api/order/submitOrder")
public JSONObject qygSubmitOrder(SubmitOrderRequest submitOrderRequest) {
public JdSubmitOrderResponse qygSubmitOrder(SubmitOrderRequest submitOrderRequest) {
log.info("收到企业购提交订单请求:{}", JSON.toJSONString(submitOrderRequest));
JSONObject response = new JSONObject();
// JSONObject response = new JSONObject();
JdSubmitOrderResponse response = new JdSubmitOrderResponse();
JSONArray orderPriceSnapArray = JSON.parseArray(submitOrderRequest.getOrderPriceSnap());
JSONArray skuInfoArray = JSON.parseArray(submitOrderRequest.getSku());
List<SubmitOrderRequest.JdSkuPriceInfo> orderPriceSnaps = JSON.parseObject(orderPriceSnapArray.toJSONString(), new TypeReference<List<SubmitOrderRequest.JdSkuPriceInfo>>() {
......@@ -62,19 +63,31 @@ public class OrderController {
BigDecimal price = skuPriceMap.get(skuId);
orderPrice = orderPrice.add(price.multiply(skuNum));
}
response.put("success", true);
response.put("resultCode", "0001");
response.put("resultMessage", "下单成功");
JSONObject result = new JSONObject();
// response.put("success", true);
// response.put("resultCode", "0001");
// response.put("resultMessage", "下单成功");
response.setSuccess(true);
response.setResultCode("0001");
response.setResultMessage("下单成功");
JdSubmitOrderResponse.JdSumbitOrderInfo jdSumbitOrderInfo = new JdSubmitOrderResponse.JdSumbitOrderInfo();
String jdOrderId = RandomStringUtils.randomNumeric(12);
result.put("jdOrderId", jdOrderId);
result.put("freight", calculateFreight(orderPrice));
result.put("orderPrice", orderPrice);
jdSumbitOrderInfo.setJdOrderId(Long.valueOf(jdOrderId));
jdSumbitOrderInfo.setFreight(calculateFreight(orderPrice));
jdSumbitOrderInfo.setOrderPrice(orderPrice);
BigDecimal orderNakedPrice = orderPrice.divide(TAX.add(new BigDecimal(1)), BigDecimal.ROUND_HALF_UP);
result.put("orderNakedPrice", orderNakedPrice);
List<BizSku> bizSkuList = new ArrayList<>();
jdSumbitOrderInfo.setOrderNakedPrice(orderNakedPrice);
jdSumbitOrderInfo.setOrderTaxPrice(orderNakedPrice.multiply(TAX).setScale(2, BigDecimal.ROUND_HALF_UP));
// JSONObject result = new JSONObject();
// result.put("jdOrderId", jdOrderId);
// result.put("freight", calculateFreight(orderPrice));
// result.put("orderPrice", orderPrice);
// BigDecimal orderNakedPrice = orderPrice.divide(TAX.add(new BigDecimal(1)), BigDecimal.ROUND_HALF_UP);
// result.put("orderNakedPrice", orderNakedPrice);
List<JdSubmitOrderResponse.JdBizSku> bizSkuList = new ArrayList<>();
for (SubmitOrderRequest.JdSkuInfo sku : skuInfos) {
BizSku bizSku = new BizSku();
JdSubmitOrderResponse.JdBizSku bizSku = new JdSubmitOrderResponse.JdBizSku();
String skuId = sku.getSkuId();
ProductItem productItem = keystoneService.getProductItemById(skuId, "jdbuy");
bizSku.setSkuId(Long.valueOf(skuId));
......@@ -92,11 +105,14 @@ public class OrderController {
bizSkuList.add(bizSku);
}
result.put("sku", bizSkuList);
result.put("orderTaxPrice", orderNakedPrice.multiply(TAX).setScale(2, BigDecimal.ROUND_HALF_UP));
response.put("result", result);
jdSumbitOrderInfo.setSku(bizSkuList);
response.setResult(jdSumbitOrderInfo);
// result.put("sku", bizSkuList);
// result.put("orderTaxPrice", orderNakedPrice.multiply(TAX).setScale(2, BigDecimal.ROUND_HALF_UP));
// response.put("result", result);
// 设置缓存,方便后面查询京东订单详情接口使用
redisUtils.set(QYG_ORDER_PREFIX + jdOrderId, response.toJSONString(), 604800);
redisUtils.set(QYG_ORDER_PREFIX + jdOrderId, JSON.toJSONString(response), 604800);
return response;
}
......
package cn.qg.holmes.entity.mock.keystone;
import lombok.Data;
@Data
public class JdBaseResponse {
private boolean success;
private String resultMessage;
private String resultCode;
}
package cn.qg.holmes.entity.mock.keystone.jdbuy;
import cn.qg.holmes.entity.mock.keystone.JdBaseResponse;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class JdSubmitOrderResponse extends JdBaseResponse {
private JdSumbitOrderInfo result;
@Data
public static class JdSumbitOrderInfo{
/**
* 京东订单号
*/
private Long jdOrderId;
/**
* 运费
*/
private BigDecimal freight;
/**
* 订单总金额
*/
private BigDecimal orderPrice;
/**
* 订单未税金额
*/
private BigDecimal orderNakedPrice;
/**
* 订单税额
*/
private BigDecimal orderTaxPrice;
/**
* 订单包含的商品信息列表
*/
private List<JdBizSku> sku;
}
@Data
public static class JdBizSku{
/**
* 京东商品编号
*/
private Long skuId;
/**
* 购买商品数量
*/
private Integer num;
/**
* 商品分类编号
*/
private Integer category;
/**
* 商品单价
*/
private BigDecimal price;
/**
* 商品名称
*/
private String name;
/**
* 商品税率
*/
private BigDecimal tax;
/**
* 商品税额
*/
private BigDecimal taxPrice;
/**
* 商品未税价
*/
private BigDecimal nakedPrice;
/**
* 商品类型:0普通、1附件、2赠品
*/
private Integer type;
/**
* 主商品skuid,如果本身是主商品,则oid为0
*/
private Long oid;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment