记得上下班打卡 | git大法好,push需谨慎

Commit cd7edf84 authored by 胡佳晨's avatar 胡佳晨

注释 同步 演出 场地

parent 9485213e
package com.liquidnet.service.goblin.param;
import com.liquidnet.service.goblin.entity.GoblinOrderAttr;
import com.liquidnet.service.goblin.entity.GoblinOrderSku;
import com.liquidnet.service.goblin.entity.GoblinStoreOrder;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@ApiModel(value = "GoblinOrderSqlParam")
@Data
public class GoblinOrderSqlParam implements Cloneable{
private GoblinStoreOrder storeOrder;
private GoblinOrderAttr orderAttr;
private List<GoblinOrderSku> orderSkuList;
private static final GoblinOrderSqlParam obj = new GoblinOrderSqlParam();
public static GoblinOrderSqlParam getNew() {
try {
return (GoblinOrderSqlParam) obj.clone();
} catch (CloneNotSupportedException e) {
return new GoblinOrderSqlParam();
}
}
}
......@@ -19,6 +19,7 @@ import com.liquidnet.service.goblin.dto.vo.GoblinOrderAttrVo;
import com.liquidnet.service.goblin.dto.vo.GoblinOrderSkuVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreOrderVo;
import com.liquidnet.service.goblin.param.GoblinOrderPreParam;
import com.liquidnet.service.goblin.param.GoblinOrderSqlParam;
import com.liquidnet.service.goblin.param.PayAgainParam;
import com.liquidnet.service.goblin.param.SyncOrderParam;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo;
......@@ -64,6 +65,9 @@ public class GoblinAppOrderServiceImpl implements IGoblinAppOrderService {
public ResponseDto<GoblinPayInnerResultVo> checkOrder(GoblinOrderParam param) {
String uid = CurrentUtil.getCurrentUid();
List<String> skuAndPreListAndNumber = CollectionUtil.arrayListString();
List<GoblinOrderSqlParam> orderSqlParams = ObjectUtil.getGoblinOrderSqlParamArrayListList();
String orderMasterCode = IDGenerator.storeMasterCode();//总订单id
GoblinOrderPreParam preParam = GoblinOrderPreParam.getNew();
preParam.setPayType(param.getPayType());
......@@ -132,14 +136,20 @@ public class GoblinAppOrderServiceImpl implements IGoblinAppOrderService {
//下单
GoblinOrderPreParam pre = order(param, storeParam, uid, isMember, addressesVo, orderMasterCode, orderId, orderCode);
preParam.setPriceActual(preParam.getPriceActual().add(pre.getPriceActual()));
preParam.setStoreName(pre.getStoreName()+","+pre.getStoreName());
preParam.setSkuName(pre.getSkuName()+","+pre.getSkuName());
preParam.setOrderIdList(pre.getOrderIdList()+","+pre.getOrderIdList());
preParam.setStoreName(pre.getStoreName() + "," + pre.getStoreName());
preParam.setSkuName(pre.getSkuName() + "," + pre.getSkuName());
preParam.setOrderIdList(pre.getOrderIdList() + "," + pre.getOrderIdList());
GoblinOrderSqlParam sqlParam = GoblinOrderSqlParam.getNew();
sqlParam.setStoreOrder(pre.getStoreOrder());
sqlParam.setOrderAttr(pre.getOrderAttr());
sqlParam.setOrderSkuList(pre.getOrderSkuList());
orderSqlParams.add(sqlParam);
}//GoblinOrderStoreParam
if(preParam.getOrderIdList().equals("")){
if (preParam.getOrderIdList().equals("")) {
throw new Exception("参数异常");
}
return payOrder(preParam);
return payOrder(preParam, orderSqlParams, uid);
} catch (Exception e) {
log.error("Kylin Order Pay Error = {}", e);
//回顾限购 回滚库存
......@@ -173,10 +183,6 @@ public class GoblinAppOrderServiceImpl implements IGoblinAppOrderService {
private GoblinOrderPreParam order(GoblinOrderParam param, GoblinOrderStoreParam storeParam, String uid, boolean isMember, AdamAddressesVo addressesVo, String orderMasterCode, String orderId, String orderCode) throws Exception {
String platVoucherCode = storeParam.getPlatVoucherCode();
String storeId = storeParam.getStoreId();
LinkedList<String> sqls = CollectionUtil.linkedListString();
sqls.add(SqlMapping.get("goblin.order.create.sku_insert"));
sqls.add(SqlMapping.get("goblin.order.create.order_insert"));
sqls.add(SqlMapping.get("goblin.order.create.attr_insert"));
Map token = CurrentUtil.getTokenClaims();
String headerCliSource = CurrentUtil.getHeaderCliSource(), headerCliVersion = CurrentUtil.getHeaderCliVersion();
String source = headerCliSource == null ? "" : headerCliSource;
......@@ -188,8 +194,7 @@ public class GoblinAppOrderServiceImpl implements IGoblinAppOrderService {
BigDecimal storeTotalPrice = BigDecimal.ZERO;//订单总金额
BigDecimal voucherMarket = BigDecimal.ZERO;//活动优惠金额
String writeOffCode = ""; //取货码
List<GoblinOrderSkuVo> goblinOrderSkuVoList = ObjectUtil.getGoblinOrderSkuVoArrayList();
LinkedList<Object[]> sqlDataSku = CollectionUtil.linkedListObjectArr();
List<GoblinOrderSku> goblinOrderSkuList = ObjectUtil.getGoblinOrderSkuArrayList();
for (GoblinOrderSkuParam skuParam : storeParam.getGoblinOrderSkuParamArrayList()) {
String pre = GoblinStatusConst.MarketPreStatus.getPre(skuParam.getSkuId());
GoblinGoodsSkuInfoVo skuVo = redisUtils.getGoodsSkuInfoVo(skuParam.getSkuId());
......@@ -234,14 +239,7 @@ public class GoblinAppOrderServiceImpl implements IGoblinAppOrderService {
orderSku.setSkuSpecs(JSON.toJSONString(skuVo.getSkuSpecList()));
orderSku.setPriceVoucher(priceBase.subtract(price));
orderSku.setCreatedAt(now);
sqlDataSku.add(new Object[]{
orderSku.getOrderSkuId(), orderSku.getOrderId(), orderSku.getSpuId(), orderSku.getSkuId(), orderSku.getNum(), orderSku.getSkuPrice(), orderSku.getSkuPriceActual(), orderSku.getSkuName(),
orderSku.getSkuNo(), orderSku.getSkuImage(), orderSku.getSkuSpecs(), orderSku.getPriceVoucher(), orderSku.getCreatedAt()
});
//订单 orderSku Vo
GoblinOrderSkuVo orderSkuVo = GoblinOrderSkuVo.getNew();
BeanUtils.copyProperties(orderSku, orderSkuVo);
goblinOrderSkuVoList.add(orderSkuVo);
goblinOrderSkuList.add(orderSku);
}
//优惠券
BigDecimal voucherPrice = BigDecimal.ZERO;
......@@ -290,46 +288,19 @@ public class GoblinAppOrderServiceImpl implements IGoblinAppOrderService {
orderAttr.setExpressPhone(addressesVo.getPhone());
orderAttr.setExpressType(1);
orderAttr.setCreatedAt(now);
LinkedList<Object[]> sqlDataOrder = CollectionUtil.linkedListObjectArr();
sqlDataOrder.add(new Object[]{
storeOrder.getMasterOrderCode(), storeOrder.getOrderId(), storeOrder.getStoreId(), storeOrder.getOrderCode(), storeOrder.getUserId(), storeOrder.getUserName(), storeOrder.getUserMobile(), storeOrder.getPriceTotal(),
storeOrder.getPriceActual(), storeOrder.getPriceRefund(), storeOrder.getPriceExpress(), storeOrder.getPriceCoupon(), storeOrder.getPriceVoucher(), storeOrder.getStatus(), storeOrder.getUcouponId(), storeOrder.getPayType(), storeOrder.getDeviceFrom(),
storeOrder.getSource(), storeOrder.getVersion(), storeOrder.getIsMember(), storeOrder.getOrderType(), storeOrder.getWriteOffCode(), storeOrder.getPayCountdownMinute(), storeOrder.getIpAddress(), storeOrder.getPayCode(), storeOrder.getCreatedAt()
});
LinkedList<Object[]> sqlDataAttr = CollectionUtil.linkedListObjectArr();
sqlDataAttr.add(new Object[]{
orderAttr.getOrderAttrId(), orderAttr.getOrderId(), orderAttr.getExpressContacts(), orderAttr.getExpressAddress(), orderAttr.getExpressAddressDetail(), orderAttr.getExpressPhone(), orderAttr.getExpressType(), orderAttr.getCreatedAt()
});
//订单vo
GoblinStoreOrderVo orderVo = GoblinStoreOrderVo.getNew();
BeanUtils.copyProperties(storeOrder, orderVo);
//订单attr vo
GoblinOrderAttrVo orderAttrVo = GoblinOrderAttrVo.getNew();
BeanUtils.copyProperties(orderAttr, orderAttrVo);
//redis 赋值
orderVo.setOrderAttrVo(orderAttrVo);
orderVo.setOrderSkuVos(goblinOrderSkuVoList);
redisUtils.setGoblinOrder(orderVo.getOrderId(), orderVo);
//redis 添加未支付列表
redisUtils.addUnPayOrder(orderVo.getOrderId());
//redis 订单列表
redisUtils.addOrderList(uid, orderId);
//mysql 执行sql
String sqlData = SqlMapping.gets(sqls, sqlDataSku, sqlDataOrder, sqlDataAttr);
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.GOBLIN_ORDER_CREATE_PAY.getKey(), sqlData);
//返回值
GoblinOrderPreParam preParam = GoblinOrderPreParam.getNew();
preParam.setPriceActual(orderVo.getPriceActual());
preParam.setPriceActual(storeOrder.getPriceActual());
preParam.setStoreName(redisUtils.getStoreInfoVo(storeId).getStoreName());
preParam.setSkuName(skuName);
preParam.setOrderIdList(orderVo.getOrderId());
preParam.setOrderIdList(storeOrder.getOrderId());
preParam.setStoreOrder(storeOrder);
preParam.setOrderAttr(orderAttr);
preParam.setOrderSkuList(goblinOrderSkuList);
return preParam;
}
private ResponseDto<GoblinPayInnerResultVo> payOrder(GoblinOrderPreParam preParam){
private ResponseDto<GoblinPayInnerResultVo> payOrder(GoblinOrderPreParam preParam, List<GoblinOrderSqlParam> sqlParams, String uid) {
//是否免费
boolean isFree = false;
GoblinPayInnerResultVo payInnerResultVo;
......@@ -346,7 +317,7 @@ public class GoblinAppOrderServiceImpl implements IGoblinAppOrderService {
httpData.add("clientIp", CurrentUtil.getCliIpAddr());
httpData.add("notifyUrl", synUrl);
httpData.add("createDate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
httpData.add("expireTime", preParam.getExpireTime()+"");
httpData.add("expireTime", preParam.getExpireTime() + "");
httpData.add("payType", preParam.getPayType());
httpData.add("deviceFrom", preParam.getDeviceFrom());
if (preParam.getDeviceFrom().equals("js") || preParam.getDeviceFrom().equals("applet")) {
......@@ -358,10 +329,10 @@ public class GoblinAppOrderServiceImpl implements IGoblinAppOrderService {
}
if (preParam.getPayType().equals("douyinpay")) {
httpData.add("showUrl", preParam.getShowUrl());
httpData.add("returnUrl", preParam.getReturnUrl());
httpData.add("returnUrl", preParam.getReturnUrl());
}
if (preParam.getPayType().equals("unionpay")) {
httpData.add("returnUrl", preParam.getReturnUrl());
httpData.add("returnUrl", preParam.getReturnUrl());
}
String returnData = HttpUtil.post(payUrl, httpData);
log.info("调用 DRAGON 结果 = " + returnData);
......@@ -375,7 +346,7 @@ public class GoblinAppOrderServiceImpl implements IGoblinAppOrderService {
payInnerResultVo.setPrice(preParam.getPriceActual());
payCode = payInnerResultVo.getCode();
payInnerResultVo.setShowUrl(preParam.getShowUrl());
payInnerResultVo.setReturnUrl( preParam.getReturnUrl());
payInnerResultVo.setReturnUrl(preParam.getReturnUrl());
} else {
isFree = true;
preParam.setPayType("FREE");
......@@ -384,6 +355,55 @@ public class GoblinAppOrderServiceImpl implements IGoblinAppOrderService {
payInnerResultVo.setPrice(BigDecimal.valueOf(0));
payInnerResultVo.setPayType(preParam.getPayType());
}
List<GoblinOrderSkuVo> goblinOrderSkuVoList = ObjectUtil.getGoblinOrderSkuVoArrayList();
LinkedList<String> sqls = CollectionUtil.linkedListString();
sqls.add(SqlMapping.get("goblin.order.create.sku_insert"));
sqls.add(SqlMapping.get("goblin.order.create.order_insert"));
sqls.add(SqlMapping.get("goblin.order.create.attr_insert"));
for (GoblinOrderSqlParam item : sqlParams) {
LinkedList<Object[]> sqlDataSku = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> sqlDataOrder = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> sqlDataAttr = CollectionUtil.linkedListObjectArr();
for (GoblinOrderSku orderSku : item.getOrderSkuList()) {
sqlDataSku.add(new Object[]{
orderSku.getOrderSkuId(), orderSku.getOrderId(), orderSku.getSpuId(), orderSku.getSkuId(), orderSku.getNum(), orderSku.getSkuPrice(), orderSku.getSkuPriceActual(), orderSku.getSkuName(),
orderSku.getSkuNo(), orderSku.getSkuImage(), orderSku.getSkuSpecs(), orderSku.getPriceVoucher(), orderSku.getCreatedAt()
});
//订单 orderSku Vo
GoblinOrderSkuVo orderSkuVo = GoblinOrderSkuVo.getNew();
BeanUtils.copyProperties(orderSku, orderSkuVo);
goblinOrderSkuVoList.add(orderSkuVo);
}
GoblinStoreOrder storeOrder = item.getStoreOrder();
sqlDataOrder.add(new Object[]{
storeOrder.getMasterOrderCode(), storeOrder.getOrderId(), storeOrder.getStoreId(), storeOrder.getOrderCode(), storeOrder.getUserId(), storeOrder.getUserName(), storeOrder.getUserMobile(), storeOrder.getPriceTotal(),
storeOrder.getPriceActual(), storeOrder.getPriceRefund(), storeOrder.getPriceExpress(), storeOrder.getPriceCoupon(), storeOrder.getPriceVoucher(), storeOrder.getStatus(), storeOrder.getUcouponId(), storeOrder.getPayType(), storeOrder.getDeviceFrom(),
storeOrder.getSource(), storeOrder.getVersion(), storeOrder.getIsMember(), storeOrder.getOrderType(), storeOrder.getWriteOffCode(), storeOrder.getPayCountdownMinute(), storeOrder.getIpAddress(), storeOrder.getPayCode(), storeOrder.getCreatedAt()
});
GoblinOrderAttr orderAttr = item.getOrderAttr();
sqlDataAttr.add(new Object[]{
orderAttr.getOrderAttrId(), orderAttr.getOrderId(), orderAttr.getExpressContacts(), orderAttr.getExpressAddress(), orderAttr.getExpressAddressDetail(), orderAttr.getExpressPhone(), orderAttr.getExpressType(), orderAttr.getCreatedAt()
});
//订单vo
GoblinStoreOrderVo orderVo = GoblinStoreOrderVo.getNew();
BeanUtils.copyProperties(storeOrder, orderVo);
//订单attr vo
GoblinOrderAttrVo orderAttrVo = GoblinOrderAttrVo.getNew();
BeanUtils.copyProperties(orderAttr, orderAttrVo);
//redis 赋值
orderVo.setOrderAttrVo(orderAttrVo);
orderVo.setOrderSkuVos(goblinOrderSkuVoList);
redisUtils.setGoblinOrder(orderVo.getOrderId(), orderVo);
//redis 添加未支付列表
redisUtils.addUnPayOrder(orderVo.getOrderId());
//redis 订单列表
redisUtils.addOrderList(uid, orderVo.getOrderId());
//mysql 执行sql
String sqlData = SqlMapping.gets(sqls, sqlDataSku, sqlDataOrder, sqlDataAttr);
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.GOBLIN_ORDER_CREATE_PAY.getKey(), sqlData);
}
log.info(UserPathDto.setData("下单(唤起支付)", preParam, payInnerResultVo));
if (isFree) {
SyncOrderParam syncOrderParam = SyncOrderParam.getNew();
......
......@@ -6,6 +6,10 @@ import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtGoodsListVo;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtThumbVo;
import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.entity.GoblinFrontBanner;
import com.liquidnet.service.goblin.entity.GoblinOrderAttr;
import com.liquidnet.service.goblin.entity.GoblinOrderSku;
import com.liquidnet.service.goblin.entity.GoblinStoreOrder;
import com.liquidnet.service.goblin.param.GoblinOrderSqlParam;
import com.mongodb.BasicDBObject;
import java.util.ArrayList;
......@@ -32,6 +36,11 @@ public class ObjectUtil {
private static final ArrayList<GoblinGoodsInfoVo> goblinGoodsInfoVos = new ArrayList<>();
private static final ArrayList<GoblinZhengzaiGoodVo> goblinZhengzaiGoodVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinOrderSkuVo> goblinOrderSkuVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinOrderSku> goblinOrderSkuArrayList = new ArrayList<>();
private static final ArrayList<GoblinStoreOrder> goblinStoreOrderArrayList = new ArrayList<>();
private static final ArrayList<GoblinOrderAttr> goblinOrderAttrArrayList = new ArrayList<>();
private static final ArrayList<GoblinOrderSqlParam> goblinOrderSqlParamArrayList = new ArrayList<>();
private static final BasicDBObject basicDBObject = new BasicDBObject();
......@@ -39,14 +48,30 @@ public class ObjectUtil {
return goblinStoreMgtGoodsVoPagedResult.clone();
}
public static ArrayList<GoblinGoodsInfoVo> getGoblinGoodsInfoVos(){
public static ArrayList<GoblinGoodsInfoVo> getGoblinGoodsInfoVos() {
return (ArrayList<GoblinGoodsInfoVo>) goblinGoodsInfoVos.clone();
}
public static ArrayList<GoblinOrderSkuVo> getGoblinOrderSkuVoArrayList(){
public static ArrayList<GoblinOrderSkuVo> getGoblinOrderSkuVoArrayList() {
return (ArrayList<GoblinOrderSkuVo>) goblinOrderSkuVoArrayList.clone();
}
public static ArrayList<GoblinOrderSqlParam> getGoblinOrderSqlParamArrayListList() {
return (ArrayList<GoblinOrderSqlParam>) goblinOrderSqlParamArrayList.clone();
}
public static ArrayList<GoblinOrderSku> getGoblinOrderSkuArrayList() {
return (ArrayList<GoblinOrderSku>) goblinOrderSkuArrayList.clone();
}
public static ArrayList<GoblinOrderAttr> getGoblinOrderAttrArrayList() {
return (ArrayList<GoblinOrderAttr>) goblinOrderAttrArrayList.clone();
}
public static ArrayList<GoblinStoreOrder> getGoblinStoreOrderArrayList() {
return (ArrayList<GoblinStoreOrder>) goblinStoreOrderArrayList.clone();
}
public static ArrayList<GoblinShowStoreInfoVo> getGoblinShowStoreInfoVoArrayList() {
return (ArrayList<GoblinShowStoreInfoVo>) goblinShowStoreInfoVoArrayList.clone();
}
......
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