gongfuzhu 1 year ago
parent
commit
3001cbd831

+ 1 - 1
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/controller/XiaoJuController.java

@@ -85,7 +85,7 @@ public class XiaoJuController {
     @RequestMapping(value = "cancelOrder", method = RequestMethod.POST)
     @ResourceAuth(value = "user", type = AuthType.User)
     public ResultContent cancelOrder(@RequestBody QueryNewOrderResponse queryNewOrderResponse) {
-       return xiaoJuService.cancelOrder(queryNewOrderResponse.getOutOrderId(), queryNewOrderResponse.getXjOrderId());
+       return xiaoJuService.cancelOrder(queryNewOrderResponse);
     }
     @ApiOperation("查询订单列表")
     @RequestMapping(value = "queryOrderList", method = RequestMethod.POST)

+ 76 - 54
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/service/XiaoJuService.java

@@ -21,8 +21,11 @@ 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.model.order.v2.GoodsResultModel;
+import com.zhongshu.payment.client.model.order.v2.UpdateGoodsModel;
 import com.zhongshu.payment.client.service.v2.OrderService2;
 import com.zhongshu.payment.client.type.JobFlowMap;
+import com.zhongshu.payment.client.type.OrderType;
 import com.zhongshu.payment.client.type.TransferOwner;
 import com.zhongshu.payment.client.type.TransferType;
 import com.zswl.cloud.shop.client.dto.life.TripartiteShopDto;
@@ -98,7 +101,7 @@ public class XiaoJuService {
         tripartiteShopDto.setMapLon(String.valueOf(xiaoJuStore.getLon()));
         tripartiteShopDto.setMapLat(String.valueOf(xiaoJuStore.getLat()));
         tripartiteShopDto.setLogoPath(xiaoJuStore.getLogo());
-        if (xiaoJuStore.getPicList().size()>0){
+        if (xiaoJuStore.getPicList().size() > 0) {
             tripartiteShopDto.setDetailImg(xiaoJuStore.getPicList().get(0));
         }
 
@@ -107,7 +110,6 @@ public class XiaoJuService {
         log.info("创建店铺响应{}", JSONUtil.toJsonStr(resultContent));
 
 
-
         XiaoJuStore byStoreId = xiaoJuStoreDao.findByStoreId(xiaoJuStore.getStoreId());
         if (byStoreId != null) {
             BeanUtils.copyProperties(byStoreId, xiaoJuStore, "id", "updateTime");
@@ -149,6 +151,8 @@ public class XiaoJuService {
         BeanUtils.copyProperties(byOutOrderId, xiaoJuStore, "outOrderId");
         xiaoJuOrderDao.save(byOutOrderId);
 
+
+
         String data = SecurityService.genEncodeData("{\"success\":true,\"msg\":\"ok\"}", oilConfig.getDataSecret(), oilConfig.getDataSecretIV());
         String sig = SecurityService.genSigData(data, oilConfig.getDataSecret());
         ResponseDTO responseDTO = new ResponseDTO();
@@ -341,19 +345,16 @@ public class XiaoJuService {
 //        if (ObjectUtil.isNotEmpty(detail.getContent().getAuthAccount())) {
 //            throw new RuntimeException("分账账户未配置");
 //        }
-
-
         AuthDetails currentUser = authHelper.getCurrentUser();
         String phone = currentUser.getPhone();
         String userId = currentUser.getUserId();
 
         XiaoJuStore byStoreId = xiaoJuStoreDao.findByStoreId(xiaoJuQueryNewOrderModel.getStoreId());
 
-        String outOrderId = snowflake.nextIdStr();
         QueryNewOrderRequest queryNewOrderRequest = new QueryNewOrderRequest();
         queryNewOrderRequest.setOutUserId(userId);
         queryNewOrderRequest.setMobile(phone);
-        queryNewOrderRequest.setOutOrderId(outOrderId);
+//        queryNewOrderRequest.setOutOrderId(outOrderId);
         queryNewOrderRequest.setLat(byStoreId.getLat());
         queryNewOrderRequest.setLon(byStoreId.getLon());
         queryNewOrderRequest.setStoreId(byStoreId.getStoreId());
@@ -367,6 +368,50 @@ public class XiaoJuService {
         queryNewOrderRequest.setStorePrice(xiaoJuQueryNewOrderModel.getStorePrice());
         queryNewOrderRequest.setPromotionInfo(xiaoJuQueryNewOrderModel.getPromotionInfo());
 
+
+        /*************************************************************************/
+        // 平台订单
+
+        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("");
+        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));
+        createOrder2Model.setGoodsList(List.of(goods));
+
+        ResultContent<CreatOrderResultModel> creat = orderService2.creat(createOrder2Model);
+        log.info("创建订单结果:{}", JSONUtil.toJsonStr(creat.getContent()));
+        // 平台订单结束
+        /*************************************************************************/
+        queryNewOrderRequest.setOutOrderId(creat.getContent().getOrderNo());
+
+
         QueryClient queryClient = QueryClientFactory.create(oilConfig);
 
         ApiLog apiLog = new ApiLog();
@@ -380,52 +425,13 @@ public class XiaoJuService {
             XiaoJuOrder xiaoJuOrder = new XiaoJuOrder();
             BeanUtils.copyProperties(queryNewOrderResponse, xiaoJuOrder);
             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()));
-            // 平台订单结束
-
+            UpdateGoodsModel updateGoodsModel = new UpdateGoodsModel();
+            updateGoodsModel.setExtend(JSONUtil.toJsonStr(queryNewOrderResponse));
+            updateOrder(queryNewOrderResponse.getOutOrderId(), updateGoodsModel);
             return ResultContent.buildContent(queryNewOrderResponse);
         } catch (Exception e) {
 
@@ -441,10 +447,10 @@ public class XiaoJuService {
 
 
     // 取消订单
-    public ResultContent cancelOrder(String orderNo,String xjOrderId) {
+    public ResultContent cancelOrder(QueryNewOrderResponse queryNewOrderResponse) {
         MiniCancelOrderStatusRequest cancelOrderStatusRequest = new MiniCancelOrderStatusRequest();
-        cancelOrderStatusRequest.setOutOrderId(orderNo);
-        cancelOrderStatusRequest.setXjOrderId(xjOrderId);
+        cancelOrderStatusRequest.setOutOrderId(queryNewOrderResponse.getOutOrderId());
+        cancelOrderStatusRequest.setXjOrderId(queryNewOrderResponse.getXjOrderId());
         QueryClient queryClient = QueryClientFactory.create(oilConfig);
         ApiLog apiLog = new ApiLog();
         apiLog.setService("cancelOrder");
@@ -454,7 +460,11 @@ public class XiaoJuService {
             queryClient.apiMini().cancelOrder(cancelOrderStatusRequest);
             apiLog.setResponse(null);
             apiLogDao.save(apiLog);
-        }catch (Exception e) {
+            UpdateGoodsModel updateGoodsModel = new UpdateGoodsModel();
+            updateGoodsModel.setGoodsState(OrderType.CLOSE);
+            updateOrder(queryNewOrderResponse.getOutOrderId(), updateGoodsModel);
+
+        } catch (Exception e) {
             e.printStackTrace();
             apiLog.setResponse(e.getCause().getMessage());
             apiLogDao.save(apiLog);
@@ -466,9 +476,8 @@ public class XiaoJuService {
     }
 
 
-
     // 同步订单状态
-    public  void syncOrderStatus(SynOrderStatusRequest synOrderStatusRequest) {
+    public void syncOrderStatus(SynOrderStatusRequest synOrderStatusRequest) {
 
         QueryClient queryClient = QueryClientFactory.create(oilConfig);
 
@@ -623,4 +632,17 @@ public class XiaoJuService {
 
         }
     }
+
+
+    private void updateOrder(String orderNo, UpdateGoodsModel updateGoodsModel) {
+
+        ResultContent<List<GoodsResultModel>> listResultContent = orderService2.goodsDetail(orderNo);
+
+        for (GoodsResultModel goodsResultModel : listResultContent.getContent()) {
+            updateGoodsModel.setId(goodsResultModel.getId());
+            orderService2.updateGoods(updateGoodsModel);
+        }
+
+
+    }
 }