gongfuzhu пре 1 година
родитељ
комит
90aec94b68

+ 23 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/video/YqdCreateRequestModel.java

@@ -0,0 +1,23 @@
+package com.zswl.cloud.springBtach.server.core.api.video;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class YqdCreateRequestModel {
+
+    private String commodityId;
+    private String external_orderno;
+    private Integer buyCount;
+    private String remark;
+    private String callbackUrl;
+    private BigDecimal externalSellPrice;
+    private List<String> template;
+}

+ 47 - 7
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/video/YqdServiceImpl.java

@@ -16,6 +16,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
@@ -27,12 +28,18 @@ import java.util.Map;
 public class YqdServiceImpl {
 
 
-    private static final String KEY = "f38e792dbcc92bf0b462ec48819fbc17";
+    @Value("${yqd.key}")
+    private String key;
 
-    private static final String ACCOUNT = "chen1130";
+    @Value("${yqd.account}")
+    private String account;
 
 
-    private static final String CREATE_ORDER = "http://open.yiqida.cn/api/UserOrder/CreateOrder?timestamp=%s&userName=%s&sign=%s";
+    @Value("${yqd.createUrl}")
+    private String createUrl;
+
+    @Value("${yqd.callbackUrl}")
+    private String callbackUrl;
 
     @Autowired
     ApiLogDao apiLogDao;
@@ -45,7 +52,7 @@ public class YqdServiceImpl {
         body.put("buyCount", dto.getBuyCount());
         body.put("externalSellPrice", dto.getExternalSellPrice());
         body.put("template", "[" + dto.getPhone() + "]");
-        String url = String.format(CREATE_ORDER, timestamp, ACCOUNT, getSign(timestamp, JSON.toJSONString(body)));
+        String url = String.format(createUrl, timestamp, account, getSign(timestamp, JSON.toJSONString(body)));
         ResponseModel request = HttpClientUtil.request(HttpModel.builder().method(MethodType.Post).url(url).body(JSON.toJSONString(body)).build());
 
         ApiLog apiLog = new ApiLog();
@@ -59,7 +66,40 @@ public class YqdServiceImpl {
             LinkedHashMap map = (LinkedHashMap) request.getBody();
             if (HttpStatus.HTTP_OK == (int) map.get("code")) {
                 log.info("视频会员响应:{}", JSON.toJSONString(request));
-                return ResultContent.build(ResultState.Success,request.getBody());
+                return ResultContent.build(ResultState.Success, request.getBody());
+            } else {
+                return ResultContent.build(ResultState.Fail, map.get("msg"));
+            }
+        } catch (Exception e) {
+            return ResultContent.build(ResultState.Fail, JSON.parseObject((String) request.getBody()).getString("msg"));
+        }
+    }
+
+
+
+
+
+
+
+    @SneakyThrows
+    public ResultContent create2(YqdCreateRequestModel createRequestModel) {
+        createRequestModel.setCallbackUrl(callbackUrl);
+        long timestamp = System.currentTimeMillis();
+        String url = String.format(createUrl, timestamp, account, getSign(timestamp, JSON.toJSONString(createRequestModel)));
+        ResponseModel request = HttpClientUtil.request(HttpModel.builder().method(MethodType.Post).url(url).body(JSON.toJSONString(createRequestModel)).build());
+
+        ApiLog apiLog = new ApiLog();
+        apiLog.setService("create");
+        apiLog.setSystem("video");
+        apiLog.setRequest(JSON.toJSONString(createRequestModel));
+        apiLog.setResponse(JSON.toJSONString(request.getBody()));
+        apiLogDao.save(apiLog);
+
+        try {
+            LinkedHashMap map = (LinkedHashMap) request.getBody();
+            if (HttpStatus.HTTP_OK == (int) map.get("code")) {
+                log.info("视频会员响应:{}", JSON.toJSONString(request));
+                return ResultContent.build(ResultState.Success, request.getBody());
             } else {
                 return ResultContent.build(ResultState.Fail, map.get("msg"));
             }
@@ -71,9 +111,9 @@ public class YqdServiceImpl {
 
     private String getSign(long timestamp, String data) {
         if (StringUtils.isEmpty(data)) {
-            return DigestUtils.md5Hex(timestamp + KEY);
+            return DigestUtils.md5Hex(timestamp + key);
         }
-        return DigestUtils.md5Hex(timestamp + data + KEY);
+        return DigestUtils.md5Hex(timestamp + data + key);
     }
 
 }

+ 30 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/video/YqdSyncOrderModel.java

@@ -0,0 +1,30 @@
+package com.zswl.cloud.springBtach.server.core.api.video;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class YqdSyncOrderModel {
+
+    private String orderNo;
+    private String Id;
+    private Integer status;
+    private String msg;
+    private String mobile;
+    private String shopId;
+    private String name;
+    private BigDecimal actualPrice;
+    private BigDecimal payPrice;
+    private String format;
+    private String branchId;
+    private String externalOrderno;
+    private String img;
+    private String kami;
+    private String uuId;
+}

+ 57 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/controller/SycController.java

@@ -0,0 +1,57 @@
+package com.zswl.cloud.springBtach.server.core.controller;
+
+import cn.hutool.json.JSONUtil;
+import com.xiaoju.open.oil.commons.OilRequest;
+import com.xiaoju.open.oil.core.executor.ResponseDTO;
+import com.zswl.cloud.springBtach.server.core.api.video.YqdSyncOrderModel;
+import com.zswl.cloud.springBtach.server.core.dao.ApiLogDao;
+import com.zswl.cloud.springBtach.server.core.domain.ApiLog;
+import com.zswl.cloud.springBtach.server.core.service.XiaoJuService;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+@Log4j2
+@RestController
+@RequestMapping("sync")
+public class SycController {
+
+    @Autowired
+    XiaoJuService xiaoJuService;
+
+    @Autowired
+    ApiLogDao apiLogDao;
+
+
+    @ApiOperation("推送-同步订单信息")
+    @RequestMapping(value = "xiaoju/notifyOrderInfo", method = RequestMethod.POST)
+    public ResponseDTO notifyOrderInfo(@RequestBody OilRequest oilRequest) {
+
+        return xiaoJuService.notifyOrderInfo(oilRequest);
+    }
+
+    @ApiOperation("推送-同步加油站信息")
+    @RequestMapping(value = "xiaoju/receivingGasStation", method = RequestMethod.POST)
+    public ResponseDTO receivingGasStation(@RequestBody OilRequest oilRequest) {
+
+        return xiaoJuService.notificationPushStoreInfoRequest(oilRequest);
+    }
+
+    @ApiOperation("同步视频会员支付状态")
+    @RequestMapping(value = "yqd/orderState", method = RequestMethod.POST)
+    public String receivingGasStation(@RequestBody YqdSyncOrderModel yqdSyncOrderModel) {
+
+        log.info("视频会员同步状态:{}", JSONUtil.toJsonStr(yqdSyncOrderModel));
+        ApiLog apiLog = new ApiLog();
+        apiLog.setSystem("yqd");
+        apiLog.setRequest(JSONUtil.toJsonStr(yqdSyncOrderModel));
+        apiLog.setService("syncOrderState");
+        apiLog.setResponse("ok");
+        apiLogDao.save(apiLog);
+        return "ok";
+    }
+}

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

@@ -29,19 +29,6 @@ public class XiaoJuController {
     @Autowired
     XiaoJuService xiaoJuService;
 
-    @ApiOperation("推送-同步订单信息")
-    @RequestMapping(value = "notifyOrderInfo", method = RequestMethod.POST)
-    public ResponseDTO notifyOrderInfo(@RequestBody OilRequest oilRequest) {
-
-        return xiaoJuService.notifyOrderInfo(oilRequest);
-    }
-
-    @ApiOperation("推送-同步加油站信息")
-    @RequestMapping(value = "receivingGasStation", method = RequestMethod.POST)
-    public ResponseDTO receivingGasStation(@RequestBody OilRequest oilRequest) {
-
-        return xiaoJuService.notificationPushStoreInfoRequest(oilRequest);
-    }
 
     @ApiOperation("查看附近的加油站信息")
     @ResourceAuth(value = "user", type = AuthType.User)
@@ -98,15 +85,14 @@ public class XiaoJuController {
     @RequestMapping(value = "cancelOrder", method = RequestMethod.POST)
     @ResourceAuth(value = "user", type = AuthType.User)
     public ResultContent cancelOrder(@RequestBody QueryNewOrderResponse queryNewOrderResponse) {
-        xiaoJuService.cancelOrder(queryNewOrderResponse.getOutOrderId(), queryNewOrderResponse.getXjOrderId());
-        return ResultContent.build(ResultState.Success);
+       return xiaoJuService.cancelOrder(queryNewOrderResponse.getOutOrderId(), queryNewOrderResponse.getXjOrderId());
     }
     @ApiOperation("查询订单列表")
     @RequestMapping(value = "queryOrderList", method = RequestMethod.POST)
     @ResourceAuth(value = "user", type = AuthType.User)
     public ResultContent queryOrderList(@RequestBody QueryApiOrderListRequest queryApiOrderListRequest) {
-        xiaoJuService.queryOrderList(queryApiOrderListRequest);
-        return ResultContent.build(ResultState.Success);
+        QueryApiOrderListResponse queryApiOrderListResponse = xiaoJuService.queryOrderList(queryApiOrderListRequest);
+        return ResultContent.build(ResultState.Success,queryApiOrderListResponse);
     }
 
     @ApiOperation("下单前查询最优可用券")

+ 21 - 8
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/job/video/VideoDeliveryJob.java

@@ -8,8 +8,8 @@ import com.zhongshu.payment.client.model.order.v2.GoodsResultModel;
 import com.zhongshu.payment.client.model.order.v2.VerificationModel;
 import com.zhongshu.payment.client.service.v2.OrderService2;
 import com.zhongshu.payment.client.service.v2.PaymentService2;
-import com.zswl.cloud.shop.client.dto.yqd.OrderDto;
 import com.zswl.cloud.shop.client.service.GoodsService;
+import com.zswl.cloud.springBtach.server.core.api.video.YqdCreateRequestModel;
 import com.zswl.cloud.springBtach.server.core.api.video.YqdServiceImpl;
 import com.zswl.cloud.springBtach.server.core.job.standard.StandarDeliveryJob;
 import lombok.Data;
@@ -23,6 +23,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
+import java.util.List;
+
 @Data
 @Log4j2
 @Configuration
@@ -66,18 +68,29 @@ public class VideoDeliveryJob {
                         return RepeatStatus.FINISHED;
 
                     }
-                    OrderDto orderDto = new OrderDto();
-                    orderDto.setCommodityId(goodsResultModel.getGoodsId());
-                    orderDto.setPhone(account);
-                    ResultContent resultContent = yqdServiceImpl.create(orderDto);
-                    log.info("视频会员响应结果:{}", resultContent.getContent());
-                    if (!resultContent.getState().equals(ResultState.Success)) {
+//                    OrderDto orderDto = new OrderDto();
+//                    orderDto.setCommodityId(goodsResultModel.getGoodsId());
+//                    orderDto.setPhone(account);
+//                    ResultContent resultContent = yqdServiceImpl.create(orderDto);
+
+                    YqdCreateRequestModel createRequestModel = new YqdCreateRequestModel();
+                    createRequestModel.setBuyCount(1);
+                    createRequestModel.setExternal_orderno(goodsResultModel.getOrderNo());
+                    createRequestModel.setCommodityId(goodsResultModel.getGoodsId());
+                    createRequestModel.setTemplate(List.of(account));
+                    createRequestModel.setExternalSellPrice(goodsResultModel.getPayAmount());
+                    createRequestModel.setRemark(goodsResultModel.getUserId());
+
+
+                    ResultContent yqdServiceImpl2 = yqdServiceImpl.create2(createRequestModel);
+                    log.info("视频会员响应结果:{}", yqdServiceImpl2.getContent());
+                    if (!yqdServiceImpl2.getState().equals(ResultState.Success)) {
                         getResultContent().set(ResultContent.build(ResultState.Fail));
                         return RepeatStatus.FINISHED;
                     }
                     String extend = goodsResultModel.getExtend();
                     JSONObject entries1 = JSONUtil.parseObj(extend);
-                    entries1.set("response", resultContent.getContent());
+                    entries1.set("response", yqdServiceImpl2.getContent());
                     orderService2.updateExtend(goodsResultModel.getId(), JSONUtil.toJsonStr(entries1));
                     getResultContent().set(ResultContent.build(ResultState.Success));
                     return RepeatStatus.FINISHED;

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

@@ -361,19 +361,28 @@ public class XiaoJuService {
 
 
     // 取消订单
-    public void cancelOrder(String orderNo,String xjOrderId) {
+    public ResultContent cancelOrder(String orderNo,String xjOrderId) {
         MiniCancelOrderStatusRequest cancelOrderStatusRequest = new MiniCancelOrderStatusRequest();
         cancelOrderStatusRequest.setOutOrderId(orderNo);
         cancelOrderStatusRequest.setXjOrderId(xjOrderId);
         QueryClient queryClient = QueryClientFactory.create(oilConfig);
-        queryClient.apiMini().cancelOrder(cancelOrderStatusRequest);
         ApiLog apiLog = new ApiLog();
         apiLog.setService("cancelOrder");
-        apiLog.setRequest(JSONUtil.toJsonStr(cancelOrderStatusRequest));
         apiLog.setSystem("xiaoju");
-        apiLog.setResponse(null);
-        apiLogDao.save(apiLog);
+        apiLog.setRequest(JSONUtil.toJsonStr(cancelOrderStatusRequest));
+        try {
+            queryClient.apiMini().cancelOrder(cancelOrderStatusRequest);
+            apiLog.setResponse(null);
+            apiLogDao.save(apiLog);
+        }catch (Exception e) {
+            e.printStackTrace();
+            apiLog.setResponse(e.getCause().getMessage());
+            apiLogDao.save(apiLog);
+            ResultContent resultContent = ResultContent.build(ResultState.Fail, e.getCause().getMessage());
+            return resultContent;
+        }
 
+        return ResultContent.build(ResultState.Success);
     }
 
 
@@ -402,6 +411,24 @@ public class XiaoJuService {
         return queryApiOrderListResponse;
 
 
+    }
+
+    // 查询订单列表
+    public QueryApiOrderListResponse queryOrderList2(QueryApiOrderListRequest queryApiOrderListRequest) {
+        String userId = authHelper.getCurrentUser().getUserId();
+
+//        xiaoJuOrderDao.findByOutOrderId();
+
+        queryApiOrderListRequest.setMobile(authHelper.getCurrentUser().getPhone());
+        queryApiOrderListRequest.setOutUserId(userId);
+
+        QueryClient queryClient = QueryClientFactory.create(oilConfig);
+
+        QueryApiOrderListResponse queryApiOrderListResponse = queryClient.api().queryOrderList(queryApiOrderListRequest);
+
+        return queryApiOrderListResponse;
+
+
     }
 
 

+ 10 - 0
SpringBatchServiceServer/src/main/resources/application-dev.yml

@@ -46,6 +46,7 @@ dfy:
     apikey: hoteltest
     secretkey: aaaaaaaa
 
+# 滴滴加油
 xiaoju:
   appId: zhongshutest
   appSecret: mMkL/1/BVfLY8a2p8049YIXofqAwNFKACWIUzimfacs=
@@ -55,6 +56,15 @@ xiaoju:
 #  serverUrl: https://gw.am.xiaojukeji.com/sandbox
   serverUrl: https://gw.am.xiaojukeji.com/pre
 
+# 亿奇达
+yqd:
+  key: f38e792dbcc92bf0b462ec48819fbc17
+  account: chen1130
+  createUrl: http://open.yiqida.cn/api/UserOrder/CreateOrder?timestamp=%s&userName=%s&sign=%s
+  callbackUrl: https://api.dev.zonelife.cn/springbatchservice/sync/yqd/orderState
+
+
+
 #logging:
 #  level:
 #    org: