Browse Source

合作伙伴参数构建---计费统计

qzyReal 2 years ago
parent
commit
85b81b7c2c

+ 6 - 18
sp-server/src/main/java/com/pj/api/pushfee/task/FeeDetailSyncTask.java

@@ -18,6 +18,7 @@ import com.pj.constants.business.FeeTypeEnum;
 import com.pj.constants.business.PartFeeEnum;
 import com.pj.current.config.PushfeeConfig;
 import com.pj.current.task.Task;
+import com.pj.project.sync.HelpService;
 import com.pj.project.tb_costomer.TbCostomer;
 import com.pj.project.tb_costomer.TbCostomerService;
 import com.pj.project.tb_fee_details.TbFeeDetails;
@@ -33,13 +34,8 @@ import java.util.List;
  */
 @Slf4j
 public class FeeDetailSyncTask extends Task {
-    //客户端公私钥
-    public static final String clientPublicKeyBase6 = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCimSu5J8apt2YR/o9joOCNdFzO3rOHcdcqnSCm1Wt19VwskTVjkKHc/CXHUoskX5vMiMiv6xPnf/lDpMO6KnCrwlVQFtbPvmnkwyUs/haW8ggR865MqDcBpdMGnuV0YJ04UXxSrOX+eu+dl91Web4/ZiRKbObOa8WhFm/Ln2QKswIDAQAB";
-    public static final String clientPrivateKeyBase6 = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKKZK7knxqm3ZhH+j2Og4I10XM7es4dx1yqdIKbVa3X1XCyRNWOQodz8JcdSiyRfm8yIyK/rE+d/+UOkw7oqcKvCVVAW1s++aeTDJSz+FpbyCBHzrkyoNwGl0wae5XRgnThRfFKs5f56752X3VZ5vj9mJEps5s5rxaEWb8ufZAqzAgMBAAECgYAmP/QaLXI9kIgxaXnfzQOmIx6GB7uh/DTKsIXy2TfbWunhDhPKJUb+jk5w0kkrOFaVSgQz5hAboG5J7GOi0sMINLb7H2WsOm3uGM/8HPZYsrNFnB8VUiD26LIZ6+HhPXfp/LN+k5eUnUlD6z/dZU1k6hJPOSFC3PyzfBWqaQMqGQJBAMVdQ9Uw+eC94qD1MSSEQZhqpfGE4vO7WrSACLFqyZrHvaIwZTjdUZRF1aMlJyT0afOkfSN/53QQEcejXMUrSBcCQQDS576SXkpdfrN2jmr9BAimi+6AP71GUgXL3O+2yRL2szLoU7GwtMREPBFw+ocnC4UN87NCYveJCzenQEt48JfFAkAqEIa0mYuoatAyng+rSMTyR0i3ASud5wCeF+vCZJAzfP7d4pKwW/tXLsspynFdXvp2A0jomAosooAnnJnZLDBhAkBzXoXm92Fip45wShPIeE5rHJzI1xUoxHGbRS50JKYVAY3VfQL0kM3ULa+0x7bq6uhL64WhyRVziAlXmlouvB2pAkEAuDvsjVhdo3uMGL7Tr+igPhajoWUTjPuAf+Od3SsqMTPFLBpbJM8ziXk39Me9S8wqgGwR3pnlC1Z6Rybgm+uy4g==";
-    //服务端公私钥
-    public static final String serverPublicKeyBase6 = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCb5yK85EKqwiQU+z1jyjOng6ecssQpEjC6STbCuSWN6KHLkijBxdqrCumXhbIyOVx4lHK9Rg5EjzlQxoaXQTgJdItaGjLC+UTE+NNAnnaFLg0x4jajNpLo473zdZxTYQaT3q/aKnTeXuKHw11PPUe4hmmfxPcdt9yJ0Iqo/XxV3QIDAQAB";
-    public static final String serverPrivateKeyBase64 = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJvnIrzkQqrCJBT7PWPKM6eDp5yyxCkSMLpJNsK5JY3oocuSKMHF2qsK6ZeFsjI5XHiUcr1GDkSPOVDGhpdBOAl0i1oaMsL5RMT400CedoUuDTHiNqM2kujjvfN1nFNhBpPer9oqdN5e4ofDXU89R7iGaZ/E9x233InQiqj9fFXdAgMBAAECgYASoeKgcaVYFCDM0yQIn5thy1XGYAUapX5mXSaqygbneWSQ2FR/qB5Ur9awEb30y682CAPYhB1jazyd30QpopVINvyhaWhgq1b/8KD92FqOg1eXxa7bTuTe8aMuKTB/ZJjEry0d5Mu3i6zYKtTSbnpnag5I3UE5awLDy7utYOoOHwJBAPtvz2ZBhtJvL3lsMgs7kGqrPqqI2LAX8J3oOCtE/6eQjQ0I5fBCybrwHp3baDrYul5KTL3kJvl4iWN/gHDi/nMCQQCeu3gzy0DVtM8M8bzFc/ZA753WRn4Z5axQa6lE7Tski8TUw4Bhbfan9E/C6l6Guo/+2hXPAE/RMcncClqeXXZvAkEAgf6FsO1x4fxABDvvB6Ws/ak5hfuoZCqMaWd1GtHah2yRsEqIbxZoq7CXc6/LDJmeiT9Ku+ZoTBSIm5uA8Vw6hwJALEbs872pmzMxYlH4Lzf2pAxzAbduK3kmhNRTRjfKfJpEUHksUYEkAZujuCI6NejKi/N3i+NxYFA8F5YHyw8VHwJAWoiYSYLSziHgDytoPKFvUp6EKLGDClhACJKc4LuaPNWICMxb5Dp88sY0NDYb4HzCyWIE5G4vbiF/K3kEEwCIVA==";
-    private static final Gson gson = new GsonBuilder().disableHtmlEscaping().create();
+
+
     private String detailId;
     private String syncType;
 
@@ -89,10 +85,11 @@ public class FeeDetailSyncTask extends Task {
     @Override
     public void run() {
         PushfeeConfig pushfeeConfig = SpringUtil.getBean(PushfeeConfig.class);
-        if (!pushfeeConfig.isEnable()){
+        if (!pushfeeConfig.isEnable()) {
             log.info("系统未启用同步功能");
             return;
         }
+        HelpService helpService = SpringUtil.getBean(HelpService.class);
         log.info("开始同步发票信息:{}", detailId);
         TbFeeDetailsService tbFeeDetailsService = SpringUtil.getBean(TbFeeDetailsService.class);
         TbFeeDetails tbFeeDetails = tbFeeDetailsService.getById(detailId);
@@ -101,18 +98,9 @@ public class FeeDetailSyncTask extends Task {
             return;
         }
         List<SyncBillParam> list = buildParams(tbFeeDetails);
-        String sysId = pushfeeConfig.getSysId();
-        ApiKey clientApiKey = new ApiKey(sysId, pushfeeConfig.getSysName(), serverPublicKeyBase6, clientPublicKeyBase6, clientPrivateKeyBase6);
-        ComposeOperation operation = new ComposeOperationImpl();
-        ClientRole clientHelper = ClientRoleBuilder.builder().operation(operation).build();
         SyncBillRequest detail = new SyncBillRequest();
         detail.setBillList(list);
-        Message message = clientHelper.requestPayloadObject(sysId, detail, clientApiKey);
-        String messageToBeSend = gson.toJson(message);
-        log.info("客户端发送报文:" + messageToBeSend);
-        String response = HttpUtil.createPost(pushfeeConfig.getSyncUrl())
-                .header("Authorization", "openApi")
-                .timeout(2000).setReadTimeout(3000).body(messageToBeSend).execute().body();
+        String response = helpService.req("/data/sync/bill",detail);
         log.info("服务端返回响应:{}", response);
         if (JSONUtil.parseObj(response).getInt("code") == 200) {
             tbFeeDetails.setSyncStatus(1);

+ 7 - 0
sp-server/src/main/java/com/pj/current/config/PushfeeConfig.java

@@ -24,4 +24,11 @@ public class PushfeeConfig {
     private String startTime;
     private Integer timeSpan;
 
+    //客户端公私钥
+    private String clientPublicKeyBase6;
+    private String clientPrivateKeyBase6;
+    //服务端公私钥
+    private String serverPublicKeyBase6;
+    private String serverPrivateKeyBase64;
+
 }

+ 43 - 0
sp-server/src/main/java/com/pj/project/sync/HelpService.java

@@ -0,0 +1,43 @@
+package com.pj.project.sync;
+
+import cn.com.btxc.micro.uni.openapi.inject.ComposeOperation;
+import cn.com.btxc.micro.uni.openapi.inter.message.Message;
+import cn.com.btxc.micro.uni.openapi.keys.ApiKey;
+import cn.com.btxc.micro.uni.openapi.role.ClientRole;
+import cn.com.btxc.micro.uni.openapi.role.builder.ClientRoleBuilder;
+import cn.com.btxc.micro.uni.openapi.rsa.operation.ComposeOperationImpl;
+import cn.hutool.http.HttpUtil;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.pj.current.config.PushfeeConfig;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Component
+@Slf4j
+public class HelpService {
+    @Resource
+    private PushfeeConfig pushfeeConfig;
+    private static final Gson gson = new GsonBuilder().disableHtmlEscaping().create();
+
+    /**
+     * 发送请求
+     *
+     * @param body
+     * @return
+     */
+    public String req(String path, Object body) {
+        String sysId = pushfeeConfig.getSysId();
+        ApiKey clientApiKey = new ApiKey(sysId, pushfeeConfig.getSysName(), pushfeeConfig.getServerPublicKeyBase6(), pushfeeConfig.getClientPublicKeyBase6(), pushfeeConfig.getClientPrivateKeyBase6());
+        ComposeOperation operation = new ComposeOperationImpl();
+        ClientRole clientHelper = ClientRoleBuilder.builder().operation(operation).build();
+        Message message = clientHelper.requestPayloadObject(sysId, body, clientApiKey);
+        String messageToBeSend = gson.toJson(message);
+        log.info("客户端发送报文:" + messageToBeSend);
+        return HttpUtil.createPost(pushfeeConfig.getSyncUrl()+path)
+                .header("Authorization", "openApi")
+                .timeout(2000).setReadTimeout(3000).body(messageToBeSend).execute().body();
+    }
+}

+ 13 - 0
sp-server/src/main/java/com/pj/project/sync/PartnerDTO.java

@@ -0,0 +1,13 @@
+package com.pj.project.sync;
+
+import cn.com.btxc.micro.uni.openapi.inter.OpenApi;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@OpenApi(apiName = "REQ_002")
+public class PartnerDTO implements Serializable {
+    private List<PartnerParam> partnersList;
+}

+ 28 - 0
sp-server/src/main/java/com/pj/project/sync/PartnerParam.java

@@ -0,0 +1,28 @@
+package com.pj.project.sync;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+@Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
+public class PartnerParam implements Serializable {
+    /**
+     * 合作伙伴id
+     */
+    private String partnersId;
+    /**
+     * 合作伙伴id
+     */
+    private String partnersName;
+    /**
+     * 数据操作类型。insert-新增数据,update-修改数据,delete-删除数据
+     */
+    private String syncType;
+
+}

+ 16 - 0
sp-server/src/main/java/com/pj/project/sync/SyncService.java

@@ -0,0 +1,16 @@
+package com.pj.project.sync;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Collections;
+import java.util.List;
+
+@Service
+@Transactional
+public class SyncService {
+    public void syncPartnes(String id,String name,String syncType){
+        PartnerParam dto=new PartnerParam(id,name,syncType);
+        List<PartnerParam>list= Collections.singletonList(dto);
+    }
+}

+ 6 - 2
sp-server/src/main/resources/application-dev.yml

@@ -97,14 +97,18 @@ ocr-config:
 pushfee-config:
     enable: false
     remote-public-key-base6: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCb5yK85EKqwiQU+z1jyjOng6ecssQpEjC6STbCuSWN6KHLkijBxdqrCumXhbIyOVx4lHK9Rg5EjzlQxoaXQTgJdItaGjLC+UTE+NNAnnaFLg0x4jajNpLo473zdZxTYQaT3q/aKnTeXuKHw11PPUe4hmmfxPcdt9yJ0Iqo/XxV3QIDAQAB
-    sync-url: http://117.141.148.233:8000/accounting/sync/bill
-    sys-id: "0101"
+    sync-url: http://117.141.148.233:3101/gateway/
+    sys-id: "0110"
     sys-name: 东兴口岸场站系统
     yield-id: 0001-a1
     yield-name: 东兴口岸场站系统-A1园区
     start-time: 2022-08-10 00:00:00
     #默认时间间隔为一小时
     time-span: 3600000
+    client-public-key-base6: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCimSu5J8apt2YR/o9joOCNdFzO3rOHcdcqnSCm1Wt19VwskTVjkKHc/CXHUoskX5vMiMiv6xPnf/lDpMO6KnCrwlVQFtbPvmnkwyUs/haW8ggR865MqDcBpdMGnuV0YJ04UXxSrOX+eu+dl91Web4/ZiRKbObOa8WhFm/Ln2QKswIDAQAB
+    client-private-key-base6: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKKZK7knxqm3ZhH+j2Og4I10XM7es4dx1yqdIKbVa3X1XCyRNWOQodz8JcdSiyRfm8yIyK/rE+d/+UOkw7oqcKvCVVAW1s++aeTDJSz+FpbyCBHzrkyoNwGl0wae5XRgnThRfFKs5f56752X3VZ5vj9mJEps5s5rxaEWb8ufZAqzAgMBAAECgYAmP/QaLXI9kIgxaXnfzQOmIx6GB7uh/DTKsIXy2TfbWunhDhPKJUb+jk5w0kkrOFaVSgQz5hAboG5J7GOi0sMINLb7H2WsOm3uGM/8HPZYsrNFnB8VUiD26LIZ6+HhPXfp/LN+k5eUnUlD6z/dZU1k6hJPOSFC3PyzfBWqaQMqGQJBAMVdQ9Uw+eC94qD1MSSEQZhqpfGE4vO7WrSACLFqyZrHvaIwZTjdUZRF1aMlJyT0afOkfSN/53QQEcejXMUrSBcCQQDS576SXkpdfrN2jmr9BAimi+6AP71GUgXL3O+2yRL2szLoU7GwtMREPBFw+ocnC4UN87NCYveJCzenQEt48JfFAkAqEIa0mYuoatAyng+rSMTyR0i3ASud5wCeF+vCZJAzfP7d4pKwW/tXLsspynFdXvp2A0jomAosooAnnJnZLDBhAkBzXoXm92Fip45wShPIeE5rHJzI1xUoxHGbRS50JKYVAY3VfQL0kM3ULa+0x7bq6uhL64WhyRVziAlXmlouvB2pAkEAuDvsjVhdo3uMGL7Tr+igPhajoWUTjPuAf+Od3SsqMTPFLBpbJM8ziXk39Me9S8wqgGwR3pnlC1Z6Rybgm+uy4g==
+    server-public-key-base6: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCb5yK85EKqwiQU+z1jyjOng6ecssQpEjC6STbCuSWN6KHLkijBxdqrCumXhbIyOVx4lHK9Rg5EjzlQxoaXQTgJdItaGjLC+UTE+NNAnnaFLg0x4jajNpLo473zdZxTYQaT3q/aKnTeXuKHw11PPUe4hmmfxPcdt9yJ0Iqo/XxV3QIDAQAB
+    server-private-key-base64: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJvnIrzkQqrCJBT7PWPKM6eDp5yyxCkSMLpJNsK5JY3oocuSKMHF2qsK6ZeFsjI5XHiUcr1GDkSPOVDGhpdBOAl0i1oaMsL5RMT400CedoUuDTHiNqM2kujjvfN1nFNhBpPer9oqdN5e4ofDXU89R7iGaZ/E9x233InQiqj9fFXdAgMBAAECgYASoeKgcaVYFCDM0yQIn5thy1XGYAUapX5mXSaqygbneWSQ2FR/qB5Ur9awEb30y682CAPYhB1jazyd30QpopVINvyhaWhgq1b/8KD92FqOg1eXxa7bTuTe8aMuKTB/ZJjEry0d5Mu3i6zYKtTSbnpnag5I3UE5awLDy7utYOoOHwJBAPtvz2ZBhtJvL3lsMgs7kGqrPqqI2LAX8J3oOCtE/6eQjQ0I5fBCybrwHp3baDrYul5KTL3kJvl4iWN/gHDi/nMCQQCeu3gzy0DVtM8M8bzFc/ZA753WRn4Z5axQa6lE7Tski8TUw4Bhbfan9E/C6l6Guo/+2hXPAE/RMcncClqeXXZvAkEAgf6FsO1x4fxABDvvB6Ws/ak5hfuoZCqMaWd1GtHah2yRsEqIbxZoq7CXc6/LDJmeiT9Ku+ZoTBSIm5uA8Vw6hwJALEbs872pmzMxYlH4Lzf2pAxzAbduK3kmhNRTRjfKfJpEUHksUYEkAZujuCI6NejKi/N3i+NxYFA8F5YHyw8VHwJAWoiYSYLSziHgDytoPKFvUp6EKLGDClhACJKc4LuaPNWICMxb5Dp88sY0NDYb4HzCyWIE5G4vbiF/K3kEEwCIVA==
 oa:
     enable: true
     url: http://117.141.148.233:18766/bpm/operational/addReview/