|
@@ -3,6 +3,7 @@ package com.zswl.cloud.springBtach.server.core.service;
|
|
|
|
|
|
import cn.hutool.core.lang.Snowflake;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.github.microservice.auth.client.content.ResultContent;
|
|
|
import com.github.microservice.auth.client.content.ResultState;
|
|
@@ -18,8 +19,15 @@ import com.xiaoju.open.oil.interfaces.request.*;
|
|
|
import com.xiaoju.open.oil.interfaces.request.miniprogram.MiniCancelOrderStatusRequest;
|
|
|
import com.xiaoju.open.oil.interfaces.response.*;
|
|
|
import com.xiaoju.open.oil.security.secret.SecurityService;
|
|
|
+import com.zhongshu.payment.client.model.order.v2.CreatOrderResultModel;
|
|
|
+import com.zhongshu.payment.client.model.order.v2.CreateOrder2Model;
|
|
|
+import com.zhongshu.payment.client.service.v2.OrderService2;
|
|
|
+import com.zhongshu.payment.client.type.JobFlowMap;
|
|
|
+import com.zhongshu.payment.client.type.TransferOwner;
|
|
|
+import com.zhongshu.payment.client.type.TransferType;
|
|
|
import com.zswl.cloud.shop.client.dto.life.TripartiteShopDto;
|
|
|
import com.zswl.cloud.shop.client.service.ShopService;
|
|
|
+import com.zswl.cloud.shop.client.vo.life.ShopDetailVo;
|
|
|
import com.zswl.cloud.springBatch.client.model.request.*;
|
|
|
import com.zswl.cloud.springBtach.server.core.dao.ApiLogDao;
|
|
|
import com.zswl.cloud.springBtach.server.core.dao.XiaoJuOrderDao;
|
|
@@ -32,8 +40,10 @@ import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Optional;
|
|
|
|
|
|
@Log4j2
|
|
|
@Service
|
|
@@ -60,6 +70,8 @@ public class XiaoJuService {
|
|
|
|
|
|
@Autowired
|
|
|
private ShopService shopService;
|
|
|
+ @Autowired
|
|
|
+ private OrderService2 orderService2;
|
|
|
|
|
|
// 查询加油站详情
|
|
|
public ResponseDTO notificationPushStoreInfoRequest(OilRequest oilRequest) {
|
|
@@ -79,13 +91,16 @@ public class XiaoJuService {
|
|
|
tripartiteShopDto.setKey("加油");
|
|
|
tripartiteShopDto.setTripartiteId(xiaoJuStore.getStoreId());
|
|
|
tripartiteShopDto.setShopName(xiaoJuStore.getStoreName());
|
|
|
+ tripartiteShopDto.setShopMenuId("4");
|
|
|
tripartiteShopDto.setProvince(xiaoJuStore.getProvinceName());
|
|
|
tripartiteShopDto.setCity(xiaoJuStore.getCityName());
|
|
|
tripartiteShopDto.setAddress(xiaoJuStore.getAddress());
|
|
|
tripartiteShopDto.setMapLon(String.valueOf(xiaoJuStore.getLon()));
|
|
|
tripartiteShopDto.setMapLat(String.valueOf(xiaoJuStore.getLat()));
|
|
|
tripartiteShopDto.setLogoPath(xiaoJuStore.getLogo());
|
|
|
- tripartiteShopDto.setDetailImg(xiaoJuStore.getPicList().get(0));
|
|
|
+ if (xiaoJuStore.getPicList().size()>0){
|
|
|
+ tripartiteShopDto.setDetailImg(xiaoJuStore.getPicList().get(0));
|
|
|
+ }
|
|
|
|
|
|
|
|
|
com.zswl.cloud.shop.client.ret.ResultContent resultContent = shopService.tripartiteShop(tripartiteShopDto);
|
|
@@ -93,7 +108,6 @@ public class XiaoJuService {
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
XiaoJuStore byStoreId = xiaoJuStoreDao.findByStoreId(xiaoJuStore.getStoreId());
|
|
|
if (byStoreId != null) {
|
|
|
BeanUtils.copyProperties(byStoreId, xiaoJuStore, "id", "updateTime");
|
|
@@ -322,6 +336,13 @@ public class XiaoJuService {
|
|
|
|
|
|
// 创建订单
|
|
|
public ResultContent<QueryNewOrderResponse> queryNewOrder(XiaoJuQueryNewOrderModel xiaoJuQueryNewOrderModel) {
|
|
|
+
|
|
|
+// com.zswl.cloud.shop.client.ret.ResultContent<ShopDetailVo> detail = shopService.detail(xiaoJuQueryNewOrderModel.getEpId());
|
|
|
+// if (ObjectUtil.isNotEmpty(detail.getContent().getAuthAccount())) {
|
|
|
+// throw new RuntimeException("分账账户未配置");
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
AuthDetails currentUser = authHelper.getCurrentUser();
|
|
|
String phone = currentUser.getPhone();
|
|
|
String userId = currentUser.getUserId();
|
|
@@ -361,11 +382,50 @@ public class XiaoJuService {
|
|
|
BeanUtils.copyProperties(queryNewOrderRequest, xiaoJuOrder);
|
|
|
|
|
|
xiaoJuOrderDao.save(xiaoJuOrder);
|
|
|
-
|
|
|
-
|
|
|
apiLog.setResponse(JSONUtil.toJsonStr(queryNewOrderResponse));
|
|
|
apiLogDao.save(apiLog);
|
|
|
|
|
|
+ // 平台订单
|
|
|
+
|
|
|
+ CreateOrder2Model createOrder2Model = new CreateOrder2Model();
|
|
|
+ createOrder2Model.setShopId(xiaoJuQueryNewOrderModel.getEpId());
|
|
|
+ createOrder2Model.setUserId(userId);
|
|
|
+
|
|
|
+ JSONObject shopInfo = JSONUtil.parseObj(byStoreId);
|
|
|
+ shopInfo.put("shopName", byStoreId.getStoreName());
|
|
|
+
|
|
|
+ createOrder2Model.setShopInfo(shopInfo);
|
|
|
+
|
|
|
+ BigDecimal total = BigDecimal.valueOf(xiaoJuQueryNewOrderModel.getOriginalAmount()).divide(BigDecimal.valueOf(100));
|
|
|
+ BigDecimal payment = BigDecimal.valueOf(xiaoJuQueryNewOrderModel.getPaymentAmount()).divide(BigDecimal.valueOf(100));
|
|
|
+
|
|
|
+ createOrder2Model.setTotalAmount(total);
|
|
|
+ createOrder2Model.setPayAmount(payment);
|
|
|
+ createOrder2Model.setDiscountAmount(total.subtract(payment));
|
|
|
+ createOrder2Model.setAccesserUserId("");
|
|
|
+
|
|
|
+ CreateOrder2Model.Goods goods = new CreateOrder2Model.Goods();
|
|
|
+ goods.setGoodsId(outOrderId);
|
|
|
+ goods.setJobFlowMap(JobFlowMap.XiaoJu);
|
|
|
+ JSONObject goodsInfo = JSONUtil.parseObj(queryNewOrderRequest);
|
|
|
+ goodsInfo.put("goodsName",byStoreId.getStoreName());
|
|
|
+ goodsInfo.put("goodsPath",byStoreId.getLogo());
|
|
|
+ goods.setGoodsInfo(goodsInfo);
|
|
|
+ goods.setPayAmount(payment);
|
|
|
+ goods.setTransferType(TransferType.RATIO);
|
|
|
+ CreateOrder2Model.Owner shop = new CreateOrder2Model.Owner();
|
|
|
+ shop.setOwner(TransferOwner.BUY_SHOP);
|
|
|
+ shop.setShopId(xiaoJuQueryNewOrderModel.getEpId());
|
|
|
+ shop.setValue(BigDecimal.valueOf(100));
|
|
|
+ goods.setTransferRrule(List.of(shop));
|
|
|
+ goods.setExtend(JSONUtil.toJsonStr(queryNewOrderResponse));
|
|
|
+
|
|
|
+ createOrder2Model.setGoodsList(List.of(goods));
|
|
|
+
|
|
|
+ ResultContent<CreatOrderResultModel> creat = orderService2.creat(createOrder2Model);
|
|
|
+ log.info("创建订单结果:{}", JSONUtil.toJsonStr(creat.getContent()));
|
|
|
+ // 平台订单结束
|
|
|
+
|
|
|
return ResultContent.buildContent(queryNewOrderResponse);
|
|
|
} catch (Exception e) {
|
|
|
|